CMS 3D CMS Logo

Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes

cond::DbSession Class Reference

#include <DbSession.h>

List of all members.

Public Member Functions

const std::string & blobStreamingService () const
std::string classNameForItem (const std::string &objectId)
void close ()
const DbConnectionconnection () const
const std::string & connectionString () const
bool createDatabase ()
 DbSession (const DbConnection &connection)
 DbSession (const DbSession &rhs)
 DbSession ()
bool deleteMapping (const std::string &mappingVersion)
bool deleteObject (const std::string &objectId)
void flush ()
ora::Object getObject (const std::string &objectId)
template<typename T >
boost::shared_ptr< TgetTypedObject (const std::string &objectId)
bool importMapping (const std::string &sourceConnectionString, const std::string &contName)
std::string importObject (cond::DbSession &fromDatabase, const std::string &objectId)
bool isOldSchema ()
bool isOpen () const
bool isTransactional () const
coral::ISchema & nominalSchema ()
void open (const std::string &connectionString, const std::string &role, bool readOnly=false)
void open (const std::string &connectionString, bool readOnly=false)
void openReadOnly (const std::string &connectionString, const std::string &id)
DbSessionoperator= (const DbSession &rhs)
coral::ISchema & schema (const std::string &schemaName)
ora::Databasestorage ()
template<typename T >
std::string storeObject (const T *object, const std::string &containerName)
DbTransactiontransaction ()
template<typename T >
bool updateObject (const T *object, const std::string &objectId)
virtual ~DbSession ()

Static Public Attributes

static const char * CHANGE_SCHEMA_VERSION = "2.0.0"
static const char * COND_SCHEMA_VERSION = "2.0.0"

Private Member Functions

std::string storeObject (const ora::Object &objectRef, const std::string &containerName)

Private Attributes

boost::shared_ptr< SessionImplm_implementation

Detailed Description

Definition at line 31 of file DbSession.h.


Constructor & Destructor Documentation

DbSession::DbSession ( )

Definition at line 124 of file DbSession.cc.

                        :
  m_implementation( new SessionImpl ){ 
}
DbSession::DbSession ( const DbConnection connection) [explicit]

Definition at line 128 of file DbSession.cc.

                                                        :
  m_implementation( new SessionImpl ( connection ) ){
}
DbSession::DbSession ( const DbSession rhs)

Definition at line 132 of file DbSession.cc.

                                              :
  m_implementation( rhs.m_implementation ){ 
}
DbSession::~DbSession ( ) [virtual]

Definition at line 136 of file DbSession.cc.

                         {
}

Member Function Documentation

const std::string & DbSession::blobStreamingService ( ) const

Definition at line 184 of file DbSession.cc.

{
  return m_implementation->blobStreamingService;
}
std::string DbSession::classNameForItem ( const std::string &  objectId)
void DbSession::close ( void  )
cond::DbConnection const & DbSession::connection ( ) const

Definition at line 175 of file DbSession.cc.

                                                         {
  return *(m_implementation->connection);
}
const std::string & DbSession::connectionString ( ) const

Definition at line 169 of file DbSession.cc.

                                                       {
  if(!m_implementation->database.get())
    throw cond::Exception("DbSession::connectionString: cannot get connection string. Session has not been open.");
  return m_implementation->database->connectionString();
}
bool DbSession::createDatabase ( )

Definition at line 206 of file DbSession.cc.

Referenced by cond::AlignSplitIOV::processPayloadContainer(), TestFunct::Write(), and TestFunct::WriteWithIOV().

                                  {
  bool created = false;
  if ( !storage().exists() ){
    created = true;
    storage().create( std::string(COND_SCHEMA_VERSION) );
  }  
  return created;
}
bool DbSession::deleteMapping ( const std::string &  mappingVersion)

Definition at line 233 of file DbSession.cc.

References ora::DatabaseUtility::eraseMapping().

                                                                  {
  ora::DatabaseUtility utility = storage().utility();
  utility.eraseMapping( mappingVersion );
  return true;
}
bool DbSession::deleteObject ( const std::string &  objectId)

Definition at line 259 of file DbSession.cc.

References ora::OId::fromString().

Referenced by TestFunct::DropItem().

                                                           {
  ora::OId oid;
  oid.fromString( objectId );
  storage().erase( oid );
  storage().flush();
  return true;
}
void DbSession::flush ( )

Definition at line 288 of file DbSession.cc.

                         {
  storage().flush();
}
ora::Object DbSession::getObject ( const std::string &  objectId)

Definition at line 253 of file DbSession.cc.

References ora::OId::fromString().

Referenced by importObject(), and cond::PayLoadInspector< DataT >::load().

                                                              {
  ora::OId oid;
  oid.fromString( objectId );
  return storage().fetchItem( oid );
}
template<typename T >
boost::shared_ptr< T > DbSession::getTypedObject ( const std::string &  objectId) [inline]
bool DbSession::importMapping ( const std::string &  sourceConnectionString,
const std::string &  contName 
)

Definition at line 239 of file DbSession.cc.

References cond::buildTechnologyProxy(), and ora::DatabaseUtility::importContainerSchema().

                                                                { 
  ora::DatabaseUtility utility = storage().utility();
  std::auto_ptr<cond::TechnologyProxy> technologyProxy = buildTechnologyProxy(sourceConnectionString, *(m_implementation->connection));
  utility.importContainerSchema( (*technologyProxy).getRealConnectString( sourceConnectionString ), contName );
  return true;
}
std::string DbSession::importObject ( cond::DbSession fromDatabase,
const std::string &  objectId 
)

Definition at line 267 of file DbSession.cc.

References cont, ora::Database::containerHandle(), ora::OId::containerId(), data, ora::Object::destruct(), ora::OId::fromString(), getObject(), ora::Container::name(), run_regression::ret, and storage().

                                                                                             {
  ora::OId oid;
  oid.fromString( objectId );
  ora::Object data = fromDatabase.getObject( objectId );
  ora::Container cont = fromDatabase.storage().containerHandle( oid.containerId() );
  std::string ret = storeObject( data, cont.name() );
  data.destruct();
  return ret;
}
bool DbSession::isOldSchema ( )
bool DbSession::isOpen ( ) const

Definition at line 165 of file DbSession.cc.

                                 {
  return m_implementation->isOpen;
}
bool DbSession::isTransactional ( ) const

Definition at line 180 of file DbSession.cc.

                                          {
  return m_implementation->technologyProxy->isTransactional();
}
coral::ISchema & DbSession::nominalSchema ( )
void DbSession::open ( const std::string &  connectionString,
bool  readOnly = false 
)
void DbSession::open ( const std::string &  connectionString,
const std::string &  role,
bool  readOnly = false 
)

Definition at line 150 of file DbSession.cc.

{
  m_implementation->open( connectionString, asRole, readOnly );
}
void DbSession::openReadOnly ( const std::string &  connectionString,
const std::string &  id 
)

Definition at line 155 of file DbSession.cc.

Referenced by CondDBESSource::CondDBESSource(), and CondDBESSource::setIntervalFor().

{
  m_implementation->openReadOnly( connectionString, id );
}
cond::DbSession & DbSession::operator= ( const DbSession rhs)

Definition at line 139 of file DbSession.cc.

References m_implementation.

                                                                 {
  if(this!=&rhs) m_implementation = rhs.m_implementation;
  return *this;
}
coral::ISchema & DbSession::schema ( const std::string &  schemaName)
ora::Database & DbSession::storage ( )

Definition at line 198 of file DbSession.cc.

Referenced by cond::ExportIOVUtilities::execute(), getTypedObject(), importObject(), cond::insertIOV(), cond::loadIOV(), cond::IOVProxyData::refresh(), storeObject(), cond::updateIOV(), and updateObject().

                                   {
  if(!m_implementation->connection.get() || !m_implementation->connection->isOpen())
    throw cond::Exception("DbSession::storage: cannot access the storage. Underlying connection is closed.");
  if(!m_implementation->database.get())
    throw cond::Exception("DbSession::storage: cannot access the database. Session has not been open.");
  return *m_implementation->database;
}
template<typename T >
std::string DbSession::storeObject ( const T object,
const std::string &  containerName 
) [inline]
std::string DbSession::storeObject ( const ora::Object objectRef,
const std::string &  containerName 
) [private]

Definition at line 247 of file DbSession.cc.

References ora::OId::toString().

                                                                                              {
  ora::OId oid = storage().insertItem( containerName, object );
  storage().flush();
  return oid.toString();
}
cond::DbTransaction & DbSession::transaction ( )
template<typename T >
bool DbSession::updateObject ( const T object,
const std::string &  objectId 
) [inline]

Definition at line 142 of file DbSession.h.

References ora::Database::flush(), ora::OId::fromString(), run_regression::ret, storage(), and ora::Database::update().

Referenced by cond::updateIOV().

                                                                                        {
    bool ret = false;
    if( object ){
      ora::OId oid;
      oid.fromString( objectId );
      storage().update( oid, *object );
      storage().flush();
      ret =  true;
    }
    return ret;
  }

Member Data Documentation

const char * DbSession::CHANGE_SCHEMA_VERSION = "2.0.0" [static]

Definition at line 34 of file DbSession.h.

const char * DbSession::COND_SCHEMA_VERSION = "2.0.0" [static]

Definition at line 33 of file DbSession.h.

Referenced by cond::IOVSchemaUtility::createIOVContainer().

boost::shared_ptr<SessionImpl> cond::DbSession::m_implementation [private]

Definition at line 100 of file DbSession.h.

Referenced by operator=().