CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
ora::DatabaseSession Class Reference

#include <DatabaseSession.h>

Public Member Functions

Handle< ora::DatabaseContaineraddContainer (const std::string &containerName, const std::string &className)
 
void commitTransaction ()
 
Configurationconfiguration ()
 
bool connect (const std::string &connectionString, bool readOnly)
 
bool connect (const std::string &connectionString, const std::string &asRole, bool readOnly)
 
boost::shared_ptr
< ConnectionPool > & 
connectionPool ()
 
const std::string & connectionString ()
 
Handle< DatabaseContainercontainerHandle (const std::string &name)
 
Handle< DatabaseContainercontainerHandle (int contId)
 
NamedSequencecontainerIdSequence ()
 
const std::map< int, Handle
< DatabaseContainer > > & 
containers ()
 
ContainerUpdateTablecontainerUpdateTable ()
 
void create (const std::string &userSchemaVersion=std::string(""))
 
Handle< DatabaseContainercreateContainer (const std::string &containerName, const Reflex::Type &type)
 
 DatabaseSession ()
 
 DatabaseSession (boost::shared_ptr< ConnectionPool > &connectionPool)
 
void disconnect ()
 
void drop ()
 
void dropContainer (const std::string &name)
 
bool eraseAllNames ()
 
bool eraseObjectName (const std::string &name)
 
bool exists ()
 
Object fetchObjectByName (const std::string &name)
 
boost::shared_ptr< void > fetchTypedObjectByName (const std::string &name, const Reflex::Type &asType)
 
bool getItemId (const std::string &name, OId &destination)
 
bool getNamesForContainer (int containerId, std::vector< std::string > &destination)
 
bool getNamesForObject (int containerId, int itemId, std::vector< std::string > &destination)
 
bool isConnected ()
 
bool isTransactionActive (bool checkIfReadOnly=false)
 
bool listObjectNames (std::vector< std::string > &destination)
 
MappingDatabasemappingDatabase ()
 
void open ()
 
void rollbackTransaction ()
 
IDatabaseSchemaschema ()
 
std::string schemaVersion (bool userSchema)
 
void setAccessPermission (const std::string &principal, bool forWrite)
 
void setObjectName (const std::string &name, int containerId, int itemId)
 
void startTransaction (bool readOnly)
 
SharedSessionstorageAccessSession ()
 
bool testDropPermission ()
 
Handle< DatabaseUtilitySessionutility ()
 
virtual ~DatabaseSession ()
 

Private Member Functions

void clearTransaction ()
 

Private Attributes

Configuration m_configuration
 
boost::shared_ptr< ConnectionPoolm_connectionPool
 
std::string m_connectionString
 
ContainerUpdateTable m_containerUpdateTable
 
std::auto_ptr< NamedSequencem_contIdSequence
 
SharedSession m_dbSession
 
std::auto_ptr< MappingDatabasem_mappingDb
 
SessionMonitoringDatam_monitoring
 
std::auto_ptr< IDatabaseSchemam_schema
 
std::auto_ptr< TransactionCachem_transactionCache
 

Detailed Description

Definition at line 42 of file DatabaseSession.h.

Constructor & Destructor Documentation

ora::DatabaseSession::DatabaseSession ( )

Definition at line 45 of file DatabaseSession.cc.

References m_connectionPool.

45  :
46  m_connectionPool( new ConnectionPool ),
47  m_dbSession(),
48  m_connectionString( "" ),
49  m_schema(),
51  m_mappingDb(),
55  m_monitoring(0){
56  // for the private connection pool does not make sense to have a real pool...
57  m_connectionPool->configuration().setConnectionTimeOut(0);
58 }
SessionMonitoringData * m_monitoring
std::auto_ptr< TransactionCache > m_transactionCache
SharedSession m_dbSession
Configuration m_configuration
std::auto_ptr< IDatabaseSchema > m_schema
ContainerUpdateTable m_containerUpdateTable
std::string m_connectionString
std::auto_ptr< MappingDatabase > m_mappingDb
std::auto_ptr< NamedSequence > m_contIdSequence
boost::shared_ptr< ConnectionPool > m_connectionPool
ora::DatabaseSession::DatabaseSession ( boost::shared_ptr< ConnectionPool > &  connectionPool)
explicit

Definition at line 60 of file DatabaseSession.cc.

60  :
62  m_dbSession(),
63  m_connectionString( "" ),
64  m_schema(),
66  m_mappingDb(),
70  m_monitoring(0){
71 }
SessionMonitoringData * m_monitoring
std::auto_ptr< TransactionCache > m_transactionCache
boost::shared_ptr< ConnectionPool > & connectionPool()
SharedSession m_dbSession
Configuration m_configuration
std::auto_ptr< IDatabaseSchema > m_schema
ContainerUpdateTable m_containerUpdateTable
std::string m_connectionString
std::auto_ptr< MappingDatabase > m_mappingDb
std::auto_ptr< NamedSequence > m_contIdSequence
boost::shared_ptr< ConnectionPool > m_connectionPool
ora::DatabaseSession::~DatabaseSession ( )
virtual

Definition at line 73 of file DatabaseSession.cc.

73  {
74  disconnect();
75 }

Member Function Documentation

ora::Handle< ora::DatabaseContainer > ora::DatabaseSession::addContainer ( const std::string &  containerName,
const std::string &  className 
)

Definition at line 237 of file DatabaseSession.cc.

238  {
239  int newContId = m_contIdSequence->getNextId( true );
240  m_schema->containerHeaderTable().addContainer( newContId, containerName, className );
241  Handle<DatabaseContainer> container( new DatabaseContainer( newContId, containerName,
242  className, 0, *this ) );
243  m_transactionCache->addContainer( newContId, containerName, container );
244  return container;
245 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
std::auto_ptr< NamedSequence > m_contIdSequence
std::string className(const T &t)
Definition: ClassName.h:30
void ora::DatabaseSession::clearTransaction ( )
private

Definition at line 102 of file DatabaseSession.cc.

102  {
103  m_transactionCache.reset();
104  m_mappingDb.reset();
105  m_contIdSequence.reset();
106  m_schema.reset();
108 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
ContainerUpdateTable m_containerUpdateTable
std::auto_ptr< MappingDatabase > m_mappingDb
std::auto_ptr< NamedSequence > m_contIdSequence
void ora::DatabaseSession::commitTransaction ( )

Definition at line 141 of file DatabaseSession.cc.

141  {
142  if( m_transactionCache.get() ){
143  m_schema->containerHeaderTable().updateNumberOfObjects( m_containerUpdateTable.table() );
144  m_dbSession.get().transaction().commit();
146  if(m_monitoring) {
148  }
149  }
150 }
SessionMonitoringData * m_monitoring
std::auto_ptr< TransactionCache > m_transactionCache
size_t stopTransaction(bool commit_status=true)
Definition: Monitoring.cc:41
coral::ISessionProxy & get()
const std::map< int, unsigned int > & table()
SharedSession m_dbSession
std::auto_ptr< IDatabaseSchema > m_schema
ContainerUpdateTable m_containerUpdateTable
ora::Configuration & ora::DatabaseSession::configuration ( )

Definition at line 363 of file DatabaseSession.cc.

Referenced by ora::getContainerFromSession().

363  {
364  return m_configuration;
365 }
Configuration m_configuration
bool ora::DatabaseSession::connect ( const std::string &  connectionString,
bool  readOnly 
)

Definition at line 77 of file DatabaseSession.cc.

References ora::Monitoring::get(), ora::Monitoring::isEnabled(), and ora::Monitoring::startSession().

Referenced by Vispa.Gui.ZoomableScrollArea.ZoomableScrollArea::__init__(), Vispa.Views.PropertyView.BooleanProperty::__init__(), Vispa.Gui.FindDialog.FindDialog::_addScript(), Vispa.Gui.FindDialog.FindDialog::_addStringProperty(), Vispa.Main.Application.Application::_connectSignals(), Vispa.Plugins.ConfigEditor.CodeTableView.CodeTableView::_createItem(), Vispa.Gui.BoxContentDialog.BoxContentDialog::addButton(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer::addWidget(), Vispa.Views.PropertyView.PropertyView::append(), Vispa.Views.PropertyView.PropertyView::appendAddRow(), Vispa.Main.Application.Application::createAction(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createButton(), Vispa.Views.LineDecayView.LineDecayView::createLineDecayContainer(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createLineEdit(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createTextEdit(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filterDialog(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), ora::DatabaseUtilitySession::importContainer(), ora::DatabaseUtilitySession::importContainerSchema(), Vispa.Gui.PortWidget.PortWidget::mouseMoveEvent(), Vispa.Views.PropertyView.BooleanProperty::setChecked(), Vispa.Main.SplitterTab.SplitterTab::setController(), Vispa.Plugins.Browser.BrowserTab.BrowserTab::setController(), Vispa.Views.PropertyView.BooleanProperty::setReadOnly(), Vispa.Views.PropertyView.DropDownProperty::setReadOnly(), Vispa.Views.PropertyView.TextEditWithButtonProperty::setReadOnly(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setTab(), Vispa.Views.PropertyView.IntegerProperty::setValue(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView(), Vispa.Plugins.EdmBrowser.EdmBrowserTabController.EdmBrowserTabController::updateViewMenu(), and Vispa.Plugins.ConfigEditor.ConfigEditorTabController.ConfigEditorTabController::updateViewMenu().

78  {
79  m_dbSession = m_connectionPool->connect( connectionString, readOnly?coral::ReadOnly:coral::Update );
80  if(m_dbSession.isValid()) {
84  }
85  }
86  return isConnected();
87 }
const std::string & connectionString()
SessionMonitoringData * m_monitoring
SharedSession m_dbSession
static Monitoring & get()
Definition: Monitoring.cc:78
SessionMonitoringData * startSession(const std::string &connectionString)
Definition: Monitoring.cc:132
std::string m_connectionString
static bool isEnabled()
Definition: Monitoring.cc:83
boost::shared_ptr< ConnectionPool > m_connectionPool
bool ora::DatabaseSession::connect ( const std::string &  connectionString,
const std::string &  asRole,
bool  readOnly 
)

Definition at line 89 of file DatabaseSession.cc.

References ora::Monitoring::get(), ora::Monitoring::isEnabled(), and ora::Monitoring::startSession().

Referenced by Vispa.Gui.ZoomableScrollArea.ZoomableScrollArea::__init__(), Vispa.Views.PropertyView.BooleanProperty::__init__(), Vispa.Gui.FindDialog.FindDialog::_addScript(), Vispa.Gui.FindDialog.FindDialog::_addStringProperty(), Vispa.Main.Application.Application::_connectSignals(), Vispa.Plugins.ConfigEditor.CodeTableView.CodeTableView::_createItem(), Vispa.Gui.BoxContentDialog.BoxContentDialog::addButton(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer::addWidget(), Vispa.Views.PropertyView.PropertyView::append(), Vispa.Views.PropertyView.PropertyView::appendAddRow(), Vispa.Main.Application.Application::createAction(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createButton(), Vispa.Views.LineDecayView.LineDecayView::createLineDecayContainer(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createLineEdit(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.PropertyView.TextEditWithButtonProperty::createTextEdit(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filterDialog(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Gui.PortWidget.PortWidget::mouseMoveEvent(), Vispa.Views.PropertyView.BooleanProperty::setChecked(), Vispa.Main.SplitterTab.SplitterTab::setController(), Vispa.Plugins.Browser.BrowserTab.BrowserTab::setController(), Vispa.Views.PropertyView.BooleanProperty::setReadOnly(), Vispa.Views.PropertyView.DropDownProperty::setReadOnly(), Vispa.Views.PropertyView.TextEditWithButtonProperty::setReadOnly(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setTab(), Vispa.Views.PropertyView.IntegerProperty::setValue(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView(), Vispa.Plugins.EdmBrowser.EdmBrowserTabController.EdmBrowserTabController::updateViewMenu(), and Vispa.Plugins.ConfigEditor.ConfigEditorTabController.ConfigEditorTabController::updateViewMenu().

91  {
92  m_dbSession = m_connectionPool->connect( connectionString, asRole, readOnly?coral::ReadOnly:coral::Update );
93  if(m_dbSession.isValid()) {
97  }
98  }
99  return isConnected();
100 }
const std::string & connectionString()
SessionMonitoringData * m_monitoring
SharedSession m_dbSession
static Monitoring & get()
Definition: Monitoring.cc:78
SessionMonitoringData * startSession(const std::string &connectionString)
Definition: Monitoring.cc:132
std::string m_connectionString
static bool isEnabled()
Definition: Monitoring.cc:83
boost::shared_ptr< ConnectionPool > m_connectionPool
boost::shared_ptr< ora::ConnectionPool > & ora::DatabaseSession::connectionPool ( )

Definition at line 371 of file DatabaseSession.cc.

371  {
372  return m_connectionPool;
373 }
boost::shared_ptr< ConnectionPool > m_connectionPool
const std::string & ora::DatabaseSession::connectionString ( )

Definition at line 124 of file DatabaseSession.cc.

124  {
125  return m_connectionString;
126 }
std::string m_connectionString
ora::Handle< ora::DatabaseContainer > ora::DatabaseSession::containerHandle ( const std::string &  name)

Definition at line 264 of file DatabaseSession.cc.

Referenced by ora::getContainerFromSession(), and ora::DatabaseUtilitySession::importContainerSchema().

264  {
265  return m_transactionCache->getContainer( name );
266 }
std::auto_ptr< TransactionCache > m_transactionCache
ora::Handle< ora::DatabaseContainer > ora::DatabaseSession::containerHandle ( int  contId)

Definition at line 268 of file DatabaseSession.cc.

268  {
269  return m_transactionCache->getContainer( contId );
270 }
std::auto_ptr< TransactionCache > m_transactionCache
ora::NamedSequence & ora::DatabaseSession::containerIdSequence ( )

Definition at line 355 of file DatabaseSession.cc.

355  {
356  return *m_contIdSequence;
357 }
std::auto_ptr< NamedSequence > m_contIdSequence
const std::map< int, ora::Handle< ora::DatabaseContainer > > & ora::DatabaseSession::containers ( )

Definition at line 272 of file DatabaseSession.cc.

272  {
273  return m_transactionCache->containers();
274 }
std::auto_ptr< TransactionCache > m_transactionCache
ora::ContainerUpdateTable & ora::DatabaseSession::containerUpdateTable ( )

Definition at line 375 of file DatabaseSession.cc.

375  {
376  return m_containerUpdateTable;
377 }
ContainerUpdateTable m_containerUpdateTable
void ora::DatabaseSession::create ( const std::string &  userSchemaVersion = std::string(""))

Definition at line 181 of file DatabaseSession.cc.

181  {
182  m_schema->create( userSchemaVersion );
183  m_contIdSequence->create();
184  m_mappingDb->setUp();
185  m_transactionCache->setDbExists( true );
186 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
std::auto_ptr< MappingDatabase > m_mappingDb
std::auto_ptr< NamedSequence > m_contIdSequence
ora::Handle< ora::DatabaseContainer > ora::DatabaseSession::createContainer ( const std::string &  containerName,
const Reflex::Type &  type 
)

Definition at line 248 of file DatabaseSession.cc.

References ora::DatabaseContainer::create().

Referenced by ora::getContainerFromSession().

249  {
250  // create the container
251  int newContId = m_contIdSequence->getNextId( true );
252  Handle<DatabaseContainer> newCont ( new DatabaseContainer( newContId, containerName, type, *this ) );
253  m_transactionCache->addContainer( newContId, containerName, newCont );
254  newCont->create();
255  return newCont;
256 }
type
Definition: HCALResponse.h:22
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< NamedSequence > m_contIdSequence
void ora::DatabaseSession::disconnect ( void  )

Definition at line 110 of file DatabaseSession.cc.

Referenced by Vispa.Views.LineDecayView.LineDecayView::createLineDecayContainer(), Vispa.Views.PropertyView.BooleanProperty::setChecked(), Vispa.Views.PropertyView.BooleanProperty::setReadOnly(), Vispa.Views.PropertyView.DropDownProperty::setReadOnly(), Vispa.Views.PropertyView.TextEditWithButtonProperty::setReadOnly(), Vispa.Views.PropertyView.IntegerProperty::setValue(), Vispa.Plugins.EdmBrowser.EdmBrowserTabController.EdmBrowserTabController::updateViewMenu(), and Vispa.Plugins.ConfigEditor.ConfigEditorTabController.ConfigEditorTabController::updateViewMenu().

110  {
111  if( isConnected() ){
113  }
115  m_dbSession.close();
116  m_connectionString.clear();
118 }
SessionMonitoringData * m_monitoring
SharedSession m_dbSession
std::string m_connectionString
bool isTransactionActive(bool checkIfReadOnly=false)
void ora::DatabaseSession::drop ( )

Definition at line 188 of file DatabaseSession.cc.

References ora::throwException().

188  {
189  if(!testDropPermission()){
190  throwException("Drop permission has been denied for the current user.",
191  "DatabaseSession::drop");
192  }
193  m_schema->drop();
194  m_transactionCache->dropDatabase();
195 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
void ora::DatabaseSession::dropContainer ( const std::string &  name)

Definition at line 258 of file DatabaseSession.cc.

References cont, ora::DatabaseContainer::drop(), ora::DatabaseContainer::id(), and mergeVDriftHistosByStation::name.

258  {
260  m_transactionCache->eraseContainer( cont->id(), name );
261  cont->drop();
262 }
std::auto_ptr< TransactionCache > m_transactionCache
int cont
bool ora::DatabaseSession::eraseAllNames ( )

Definition at line 286 of file DatabaseSession.cc.

286  {
287  return m_schema->namingServiceTable().eraseAllNames();
288 }
std::auto_ptr< IDatabaseSchema > m_schema
bool ora::DatabaseSession::eraseObjectName ( const std::string &  name)

Definition at line 282 of file DatabaseSession.cc.

282  {
283  return m_schema->namingServiceTable().eraseObjectName( name );
284 }
std::auto_ptr< IDatabaseSchema > m_schema
bool ora::DatabaseSession::exists ( )

Definition at line 174 of file DatabaseSession.cc.

174  {
175  if(!m_transactionCache->dbExistsLoaded()){
176  m_transactionCache->setDbExists( m_schema->exists() );
177  }
178  return m_transactionCache->dbExists();
179 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
ora::Object ora::DatabaseSession::fetchObjectByName ( const std::string &  name)

Definition at line 290 of file DatabaseSession.cc.

References cont, ora::DatabaseContainer::fetchItem(), run_regression::ret, and ora::DatabaseContainer::type().

290  {
292  std::pair<int,int> oid;
293  if( m_schema->namingServiceTable().getObjectByName( name, oid ) ){
295  if( cont ) ret = Object( cont->fetchItem( oid.second ), cont->type() );
296  }
297  return ret;
298 }
Handle< DatabaseContainer > containerHandle(const std::string &name)
const Reflex::Type & type()
std::auto_ptr< IDatabaseSchema > m_schema
void * fetchItem(int itemId)
int cont
boost::shared_ptr< void > ora::DatabaseSession::fetchTypedObjectByName ( const std::string &  name,
const Reflex::Type &  asType 
)

Definition at line 309 of file DatabaseSession.cc.

References cont, ora::DatabaseContainer::fetchItemAsType(), run_regression::ret, and ora::DatabaseContainer::type().

310  {
311  boost::shared_ptr<void> ret = m_transactionCache->getNamedReference( name );
312  if( !ret.get() ){
313  std::pair<int,int> oid;
314  if( m_schema->namingServiceTable().getObjectByName( name, oid ) ){
316  void* ptr = 0;
317  if( cont ) {
318  ptr = cont->fetchItemAsType( oid.second, asType );
319  if( ptr) ret = boost::shared_ptr<void>( ptr, RflxDeleter( cont->type() ) );
320  }
321  }
322  if( ret.get() ) m_transactionCache->setNamedReference( name, ret );
323  }
324  return ret;
325 }
Handle< DatabaseContainer > containerHandle(const std::string &name)
const Reflex::Type & type()
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
int cont
void * fetchItemAsType(int itemId, const Reflex::Type &asType)
bool ora::DatabaseSession::getItemId ( const std::string &  name,
ora::OId destination 
)

Definition at line 300 of file DatabaseSession.cc.

300  {
301  std::pair<int,int> oidData;
302  if( m_schema->namingServiceTable().getObjectByName( name, oidData ) ){
303  destination = OId( oidData.first, oidData.second );
304  return true;
305  }
306  return false;
307 }
std::auto_ptr< IDatabaseSchema > m_schema
bool ora::DatabaseSession::getNamesForContainer ( int  containerId,
std::vector< std::string > &  destination 
)

Definition at line 327 of file DatabaseSession.cc.

328  {
329  return m_schema->namingServiceTable().getNamesForContainer( containerId, destination );
330 }
std::auto_ptr< IDatabaseSchema > m_schema
bool ora::DatabaseSession::getNamesForObject ( int  containerId,
int  itemId,
std::vector< std::string > &  destination 
)

Definition at line 332 of file DatabaseSession.cc.

334  {
335  return m_schema->namingServiceTable().getNamesForObject( containerId, itemId, destination );
336 }
std::auto_ptr< IDatabaseSchema > m_schema
bool ora::DatabaseSession::isConnected ( )

Definition at line 120 of file DatabaseSession.cc.

120  {
121  return m_dbSession.isValid();
122 }
SharedSession m_dbSession
bool ora::DatabaseSession::isTransactionActive ( bool  checkIfReadOnly = false)

Definition at line 162 of file DatabaseSession.cc.

References run_regression::ret.

162  {
163  bool ret = false;
164  if( m_dbSession.get().transaction().isActive() ){
165  if( checkIfReadOnly ){
166  if( m_dbSession.get().transaction().isReadOnly() ) ret = true;
167  } else {
168  ret = true;
169  }
170  }
171  return ret;
172 }
coral::ISessionProxy & get()
SharedSession m_dbSession
bool ora::DatabaseSession::listObjectNames ( std::vector< std::string > &  destination)

Definition at line 338 of file DatabaseSession.cc.

338  {
339 
340  return m_schema->namingServiceTable().getAllNames( destination );
341 }
std::auto_ptr< IDatabaseSchema > m_schema
ora::MappingDatabase & ora::DatabaseSession::mappingDatabase ( )

Definition at line 359 of file DatabaseSession.cc.

Referenced by ora::DatabaseUtilitySession::importContainerSchema().

359  {
360  return *m_mappingDb;
361 }
std::auto_ptr< MappingDatabase > m_mappingDb
void ora::DatabaseSession::open ( )

Definition at line 209 of file DatabaseSession.cc.

Referenced by Vispa.Plugins.ConfigEditor.ConfigEditorTabController.ConfigEditorTabController::importConfig(), and ora::DatabaseUtilitySession::importContainerSchema().

209  {
210  if(!m_transactionCache->isLoaded()){
211  std::map<std::string, ContainerHeaderData> containersData;
212  m_schema->containerHeaderTable().getContainerData( containersData );
213  for(std::map<std::string, ContainerHeaderData>::iterator iC = containersData.begin();
214  iC != containersData.end(); ++iC){
215  Handle<DatabaseContainer> container( new DatabaseContainer( iC->second.id, iC->first,
216  iC->second.className,
217  iC->second.numberOfObjects, *this ) );
218  m_transactionCache->addContainer( iC->second.id, iC->first, container );
219  }
220  m_schema->mainTable().getParameters( m_transactionCache->dbParams() );
221  m_transactionCache->setLoaded();
222  }
223 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
void ora::DatabaseSession::rollbackTransaction ( )

Definition at line 152 of file DatabaseSession.cc.

152  {
153  if( m_transactionCache.get() ){
154  m_dbSession.get().transaction().rollback();
156  if(m_monitoring) {
158  }
159  }
160 }
SessionMonitoringData * m_monitoring
std::auto_ptr< TransactionCache > m_transactionCache
size_t stopTransaction(bool commit_status=true)
Definition: Monitoring.cc:41
coral::ISessionProxy & get()
SharedSession m_dbSession
ora::IDatabaseSchema & ora::DatabaseSession::schema ( )

Definition at line 351 of file DatabaseSession.cc.

351  {
352  return *m_schema;
353 }
std::auto_ptr< IDatabaseSchema > m_schema
std::string ora::DatabaseSession::schemaVersion ( bool  userSchema)

Definition at line 225 of file DatabaseSession.cc.

References ora::IMainTable::userSchemaVersionParameterName(), BeamSplash_cfg::version, and ora::IMainTable::versionParameterName().

225  {
226  std::map<std::string,std::string>& params = m_transactionCache->dbParams();
227  std::string version("");
228  std::string paramName = IMainTable::versionParameterName();
229  if(userSchema ) paramName = IMainTable::userSchemaVersionParameterName();
230  std::map<std::string,std::string>::const_iterator iPar = params.find( paramName );
231  if( iPar != params.end() ){
232  version = iPar->second;
233  }
234  return version;
235 }
static std::string versionParameterName()
static std::string userSchemaVersionParameterName()
std::auto_ptr< TransactionCache > m_transactionCache
void ora::DatabaseSession::setAccessPermission ( const std::string &  principal,
bool  forWrite 
)

Definition at line 197 of file DatabaseSession.cc.

198  {
199  m_schema->setAccessPermission( principal, forWrite );
200 }
std::auto_ptr< IDatabaseSchema > m_schema
void ora::DatabaseSession::setObjectName ( const std::string &  name,
int  containerId,
int  itemId 
)

Definition at line 276 of file DatabaseSession.cc.

278  {
279  m_schema->namingServiceTable().setObjectName( name, containerId, itemId );
280 }
std::auto_ptr< IDatabaseSchema > m_schema
void ora::DatabaseSession::startTransaction ( bool  readOnly)

Definition at line 128 of file DatabaseSession.cc.

References ora::IDatabaseSchema::createSchemaHandle(), and ora::MappingRules::sequenceNameForContainerId().

128  {
129  if( !m_transactionCache.get() ){
130  m_dbSession.get().transaction().start( readOnly );
131  m_schema.reset( IDatabaseSchema::createSchemaHandle( m_dbSession.get().nominalSchema() ));
132  m_contIdSequence.reset( new NamedSequence( MappingRules::sequenceNameForContainerId(), *m_schema ));
133  m_mappingDb.reset( new MappingDatabase( *m_schema ));
134  m_transactionCache.reset( new TransactionCache );
135  if(m_monitoring) {
137  }
138  }
139 }
SessionMonitoringData * m_monitoring
std::auto_ptr< TransactionCache > m_transactionCache
coral::ISessionProxy & get()
SharedSession m_dbSession
std::auto_ptr< IDatabaseSchema > m_schema
static IDatabaseSchema * createSchemaHandle(coral::ISchema &schema)
std::auto_ptr< MappingDatabase > m_mappingDb
std::auto_ptr< NamedSequence > m_contIdSequence
static std::string sequenceNameForContainerId()
sequence names
Definition: MappingRules.cc:9
ora::SharedSession & ora::DatabaseSession::storageAccessSession ( )

Definition at line 367 of file DatabaseSession.cc.

367  {
368  return m_dbSession;
369 }
SharedSession m_dbSession
bool ora::DatabaseSession::testDropPermission ( )

Definition at line 202 of file DatabaseSession.cc.

202  {
203  if(!m_transactionCache->dropPermissionLoaded()){
204  m_transactionCache->setDropPermission( m_schema->testDropPermission() );
205  }
206  return m_transactionCache->dropPermission();
207 }
std::auto_ptr< TransactionCache > m_transactionCache
std::auto_ptr< IDatabaseSchema > m_schema
ora::Handle< ora::DatabaseUtilitySession > ora::DatabaseSession::utility ( )

Definition at line 343 of file DatabaseSession.cc.

343  {
344  if( !m_transactionCache->utility() ){
345  Handle<DatabaseUtilitySession> util ( new DatabaseUtilitySession( *this ) );
346  m_transactionCache->setUtility( util );
347  }
348  return m_transactionCache->utility();
349 }
std::auto_ptr< TransactionCache > m_transactionCache

Member Data Documentation

Configuration ora::DatabaseSession::m_configuration
private

Definition at line 141 of file DatabaseSession.h.

boost::shared_ptr<ConnectionPool> ora::DatabaseSession::m_connectionPool
private

Definition at line 133 of file DatabaseSession.h.

Referenced by DatabaseSession().

std::string ora::DatabaseSession::m_connectionString
private

Definition at line 135 of file DatabaseSession.h.

ContainerUpdateTable ora::DatabaseSession::m_containerUpdateTable
private

Definition at line 140 of file DatabaseSession.h.

std::auto_ptr<NamedSequence> ora::DatabaseSession::m_contIdSequence
private

Definition at line 137 of file DatabaseSession.h.

SharedSession ora::DatabaseSession::m_dbSession
private

Definition at line 134 of file DatabaseSession.h.

std::auto_ptr<MappingDatabase> ora::DatabaseSession::m_mappingDb
private

Definition at line 138 of file DatabaseSession.h.

SessionMonitoringData* ora::DatabaseSession::m_monitoring
private

Definition at line 142 of file DatabaseSession.h.

std::auto_ptr<IDatabaseSchema> ora::DatabaseSession::m_schema
private

Definition at line 136 of file DatabaseSession.h.

std::auto_ptr<TransactionCache> ora::DatabaseSession::m_transactionCache
private

Definition at line 139 of file DatabaseSession.h.