|
Gaudi Framework, version v22r4 |
| Home | Generated: Fri Sep 2 2011 |
Description: More...
#include <PoolDb/PoolDbCacheSvc.h>


Public Member Functions | |
| PoolDbCacheSvc (const std::string &name, ISvcLocator *svc) | |
| Standard constructor. | |
| virtual | ~PoolDbCacheSvc () |
| Standard destructor. | |
| virtual StatusCode | initialize () |
| Service overload: initialize service. | |
| virtual StatusCode | finalize () |
| Service overload: Finalize service. | |
| virtual pool::DbSession & | session () |
| Access the (single) POOL database session. | |
| virtual StatusCode | loadDictionary (const std::string &name) |
| Load dictionary library. | |
| virtual pool::DbOptionCallback * | callbackHandler () const |
| Access to POOL callback handler. | |
| virtual pool::DbStatus | setMyOptions (pool::IDbOptionProxy *pObj, pool::DbOptionCallback::OptionType typ, const std::string &name) |
| Default callback (does nothing) | |
| virtual pool::DbStatus | setCallbackOptions (pool::IDbOptionProxy *pObj, const std::vector< std::string > &v, const std::string &name) |
| Set callback specific options. | |
Protected Member Functions | |
| StatusCode | loadLibraries () |
| Load all required libraries. | |
Protected Attributes | |
| pool::DbSession | m_session |
| The POOL database session. | |
| pool::DbOptionCallback * | m_callbackHandler |
| Reference to POOL callback handler. | |
| std::vector< std::string > | m_dlls |
| Driver DLL to be loaded at initialization. | |
| std::vector< std::string > | m_domainOpts |
| Buffer for domain options. | |
| std::vector< std::string > | m_databaseOpts |
| Buffer for database options. | |
| std::vector< std::string > | m_databaseOpenOpts |
| Buffer for database options to be set after "open". | |
| std::vector< std::string > | m_containerOpts |
| Buffer for container options. | |
| std::vector< std::string > | m_containerOpenOpts |
| Buffer for container options to be set after "open". | |
| std::vector< System::ImageHandle > | m_sharedHdls |
| Shared Gaudi libraries. | |
Description:
The PoolCacheMgr service interface allows to access special functionality provided by the POOL persistency interface.
Definition at line 32 of file PoolDbCacheSvc.h.
| PoolDbCacheSvc::PoolDbCacheSvc | ( | const std::string & | name, |
| ISvcLocator * | svc | ||
| ) |
Standard constructor.
Definition at line 63 of file PoolDbCacheSvc.cpp.
: base_class(nam, svc), m_callbackHandler(0) { s_count->increment(); m_callbackHandler = this; declareProperty("Dlls", m_dlls); declareProperty("DomainOpts", m_domainOpts); declareProperty("DatabaseOpts", m_databaseOpts); declareProperty("DatabaseOnOpenOpts", m_databaseOpenOpts); declareProperty("ContainerOpts", m_containerOpts); declareProperty("ContainerOnOpenOpts",m_containerOpenOpts); }
| PoolDbCacheSvc::~PoolDbCacheSvc | ( | ) | [virtual] |
| virtual pool::DbOptionCallback* PoolDbCacheSvc::callbackHandler | ( | ) | const [inline, virtual] |
Access to POOL callback handler.
Implements IPoolCacheSvc.
Definition at line 99 of file PoolDbCacheSvc.h.
{
return m_callbackHandler;
}
| StatusCode PoolDbCacheSvc::finalize | ( | void | ) | [virtual] |
Service overload: Finalize service.
Shared Gaudi libraries
Reimplemented from Service.
Definition at line 113 of file PoolDbCacheSvc.cpp.
{
MsgStream log(msgSvc(), name());
session().close();
std::vector<System::ImageHandle>::iterator i;
for(i=m_sharedHdls.begin(); i != m_sharedHdls.end(); ++i) {
if ( *i ) {
// System::unloadDynamicLib(*i);
}
}
m_sharedHdls.clear();
coral::MessageStream::installMsgReporter(0);
return Service::finalize();
}
| StatusCode PoolDbCacheSvc::initialize | ( | void | ) | [virtual] |
Service overload: initialize service.
Reimplemented from Service.
Definition at line 83 of file PoolDbCacheSvc.cpp.
{
StatusCode status = Service::initialize();
MsgStream log(msgSvc(), name());
if ( !status.isSuccess() ) {
log << MSG::ERROR << "Failed to initialize Service base class."
<< endmsg;
return status;
}
coral::MessageStream::installMsgReporter(new PoolDbMsgReporter(msgSvc(),m_outputLevel.value()));
coral::MessageStream::setMsgVerbosity(static_cast<coral::MsgLevel>(m_outputLevel.value()));
log << MSG::INFO << "POOL output threshold:" << m_outputLevel
<< endmsg;
status = loadLibraries();
if ( !status.isSuccess() ) {
log << MSG::ERROR << "Failed to load POOL libraries."
<< endmsg;
return status;
}
session().open(0);
// All dictionaries should be loaded. Let's patch the streamers
// for ContainedObject, DataObject and SmartRefbase
if ( !GaudiPoolDb::patchStreamers(log) ) {
log << MSG::ERROR << "Failed to install customized IO!" << endmsg;
return StatusCode::FAILURE;
}
return status;
}
| StatusCode PoolDbCacheSvc::loadDictionary | ( | const std::string & | name ) | [virtual] |
Load dictionary library.
| name | [IN] dictionary name/file path |
Implements IPoolCacheSvc.
Definition at line 221 of file PoolDbCacheSvc.cpp.
{
System::ImageHandle hdl = 0;
StatusCode status = System::loadDynamicLib(nam, &hdl);
if ( !status.isSuccess() ) {
MsgStream log(msgSvc(), name());
log << MSG::ERROR << System::getLastErrorString() << endmsg
<< "Failed to load POOL implementation library:"
<< nam << endmsg;
return status;
}
m_sharedHdls.push_back(hdl);
return status;
}
| StatusCode PoolDbCacheSvc::loadLibraries | ( | ) | [protected] |
Load all required libraries.
Definition at line 206 of file PoolDbCacheSvc.cpp.
{
StatusCode status = StatusCode::SUCCESS;
if ( !m_dlls.empty() ) {
std::vector<std::string>::const_iterator i;
for(i=m_dlls.begin(); i != m_dlls.end(); ++i) {
StatusCode iret = loadDictionary(*i);
if ( !iret.isSuccess() ) {
status = iret;
}
}
}
return status;
}
| virtual pool::DbSession& PoolDbCacheSvc::session | ( | ) | [inline, virtual] |
Access the (single) POOL database session.
Implements IPoolCacheSvc.
Definition at line 85 of file PoolDbCacheSvc.h.
{
return m_session;
}
| pool::DbStatus PoolDbCacheSvc::setCallbackOptions | ( | pool::IDbOptionProxy * | pObj, |
| const std::vector< std::string > & | v, | ||
| const std::string & | name | ||
| ) | [virtual] |
Set callback specific options.
Set container specific options.
| pObj | [IN] Reference to object receiving options |
| name | [IN] Object's name. |
Definition at line 130 of file PoolDbCacheSvc.cpp.
{
std::string opt_nam, opt_val, opt_typ;
typedef std::vector<std::string> StringV;
for (StringV::const_iterator i=v.begin(); i!=v.end(); ++i) {
const std::string& id = *i;
if ( id.length() > obj.length() ) {
if ( obj == id.substr(0, obj.length()) ) {
std::string n = id.substr(obj.length()+1);
size_t idx = n.find("=");
size_t idx2 = n.find("TYP=");
if ( idx != std::string::npos && idx2 != std::string::npos ) {
opt_nam = n.substr(0, idx);
opt_val = n.substr(idx+1, idx2-2-idx);
opt_typ = n.substr(idx2+4,1);
std::stringstream s(opt_val);
pool::DbOption opt(opt_nam);
float fval;
int ival;
long long int lval;
switch(::toupper(opt_typ[0])) {
case 'I':
s >> ival;
opt._setValue(ival);
pObj->setOption(opt);
break;
case 'L':
s >> lval;
opt._setValue(lval);
pObj->setOption(opt);
break;
case 'F':
s >> fval;
opt._setValue(fval);
pObj->setOption(opt);
break;
case 'S':
opt._setValue(opt_val.c_str());
pObj->setOption(opt);
break;
default:
break;
}
}
}
}
}
return pool::Success;
}
| pool::DbStatus PoolDbCacheSvc::setMyOptions | ( | pool::IDbOptionProxy * | pObj, |
| pool::DbOptionCallback::OptionType | typ, | ||
| const std::string & | name | ||
| ) | [virtual] |
Default callback (does nothing)
| pObj | [IN] Reference to object receiving options |
| typ | [IN] Object type to receive options |
| name | [IN] Object's name. |
Reimplemented from pool::DbOptionCallback.
Definition at line 184 of file PoolDbCacheSvc.cpp.
{
switch (typ) {
case pool::DbOptionCallback::_DOMAIN_OPT:
return setCallbackOptions(pObj, m_domainOpts, name);
case pool::DbOptionCallback::_DATABASE_OPT:
return setCallbackOptions(pObj, m_databaseOpts, name);
case pool::DbOptionCallback::_DATABASE_ONOPEN:
return setCallbackOptions(pObj, m_databaseOpenOpts, name);
case pool::DbOptionCallback::_CONTAINER_OPT:
return setCallbackOptions(pObj, m_containerOpts, name);
case pool::DbOptionCallback::_CONTAINER_ONOPEN:
return setCallbackOptions(pObj, m_containerOpenOpts, name);
default:
break;
}
return pool::Error;
}
pool::DbOptionCallback* PoolDbCacheSvc::m_callbackHandler [protected] |
Reference to POOL callback handler.
Definition at line 41 of file PoolDbCacheSvc.h.
std::vector<std::string> PoolDbCacheSvc::m_containerOpenOpts [protected] |
Buffer for container options to be set after "open".
Definition at line 59 of file PoolDbCacheSvc.h.
std::vector<std::string> PoolDbCacheSvc::m_containerOpts [protected] |
Buffer for container options.
Definition at line 56 of file PoolDbCacheSvc.h.
std::vector<std::string> PoolDbCacheSvc::m_databaseOpenOpts [protected] |
Buffer for database options to be set after "open".
Definition at line 53 of file PoolDbCacheSvc.h.
std::vector<std::string> PoolDbCacheSvc::m_databaseOpts [protected] |
Buffer for database options.
Definition at line 50 of file PoolDbCacheSvc.h.
std::vector<std::string> PoolDbCacheSvc::m_dlls [protected] |
Driver DLL to be loaded at initialization.
Definition at line 44 of file PoolDbCacheSvc.h.
std::vector<std::string> PoolDbCacheSvc::m_domainOpts [protected] |
Buffer for domain options.
Definition at line 47 of file PoolDbCacheSvc.h.
pool::DbSession PoolDbCacheSvc::m_session [protected] |
The POOL database session.
Definition at line 38 of file PoolDbCacheSvc.h.
std::vector<System::ImageHandle> PoolDbCacheSvc::m_sharedHdls [protected] |
Shared Gaudi libraries.
Definition at line 62 of file PoolDbCacheSvc.h.