CMS 3D CMS Logo

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

#include <Database.h>

Public Member Functions

Configurationconfiguration ()
 
bool connect (const std::string &connectionString, bool readOnly=false)
 
const std::string & connectionString ()
 
Container containerHandle (const std::string &name)
 
Container containerHandle (int contId)
 
std::set< std::string > containers ()
 
bool create ()
 
template<typename T >
Container createContainer (const std::string &name)
 
template<typename T >
Container createContainer ()
 
Container createContainer (const std::string &className, std::string name="")
 
template<typename T >
ora::Container createContainer (const std::string &name)
 
template<typename T >
ora::Container createContainer ()
 
 Database ()
 
 Database (const Database &rhs)
 
 Database (boost::shared_ptr< ConnectionPool > &connectionPool)
 
void disconnect ()
 
bool drop ()
 
bool dropContainer (const std::string &name)
 
void erase (const OId &oid)
 
bool eraseAllNames ()
 
bool eraseObjectName (const std::string &name)
 
bool exists ()
 
template<typename T >
boost::shared_ptr< Tfetch (const OId &oid)
 
template<typename T >
boost::shared_ptr< TfetchByName (const std::string &name)
 
Object fetchItem (const OId &oid)
 
Object fetchItemByName (const std::string &name)
 
void flush ()
 
bool getItemId (const std::string &name, OId &destination)
 
bool getNamesForObject (const OId &oid, std::vector< std::string > &destination)
 
template<typename T >
OId insert (const std::string &containerName, const T &data)
 
template<typename T >
OId insert (const T &data)
 
template<typename T >
ora::OId insert (const std::string &containerName, const T &data)
 
template<typename T >
ora::OId insert (const T &data)
 
OId insertItem (const std::string &containerName, const Object &data)
 
bool isConnected ()
 
bool listObjectNames (std::vector< std::string > &destination)
 
Databaseoperator= (const Database &rhs)
 
void setObjectName (const std::string &name, const OId &oid)
 
SharedSessionstorageAccessSession ()
 
Transactiontransaction ()
 
template<typename T >
void update (const OId &oid, const T &data)
 
void updateItem (const OId &oid, const Object &data)
 
DatabaseUtility utility ()
 
virtual ~Database ()
 

Static Public Member Functions

static std::string nameForContainer (const std::type_info &typeInfo)
 
static std::string nameForContainer (const std::string &className)
 

Private Member Functions

void checkTransaction ()
 
Container createContainer (const std::string &name, const std::type_info &typeInfo)
 
Container createContainer (const std::type_info &typeInfo)
 
Container getContainer (const std::string &name, const std::type_info &typeInfo)
 
Container getContainer (const std::type_info &typeInfo)
 
boost::shared_ptr< void > getTypedObjectByName (const std::string &name, const std::type_info &typeInfo)
 
void open (bool writingAccess=false)
 

Private Attributes

boost::shared_ptr< DatabaseImplm_impl
 

Detailed Description

Definition at line 23 of file Database.h.

Constructor & Destructor Documentation

ora::Database::Database ( )

Definition at line 66 of file Database.cc.

Referenced by ProducePlots.ProducePlots::plotAllAndLast40Runs(), PopulateDB.PopulateDB::run(), and DiscoverProcessedRuns.DiscoverProcessedRuns::runsList().

66  :
67  m_impl( new DatabaseImpl ){
68 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::Database::Database ( const Database rhs)

Definition at line 70 of file Database.cc.

Referenced by ProducePlots.ProducePlots::plotAllAndLast40Runs(), PopulateDB.PopulateDB::run(), and DiscoverProcessedRuns.DiscoverProcessedRuns::runsList().

70  :
71  m_impl( rhs.m_impl ){
72 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::Database::Database ( boost::shared_ptr< ConnectionPool > &  connectionPool)

Definition at line 74 of file Database.cc.

Referenced by ProducePlots.ProducePlots::plotAllAndLast40Runs(), PopulateDB.PopulateDB::run(), and DiscoverProcessedRuns.DiscoverProcessedRuns::runsList().

74  :
75  m_impl( new DatabaseImpl( connectionPool) ){
76 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::Database::~Database ( )
virtual

Definition at line 78 of file Database.cc.

78  {
79  disconnect();
80 }
void disconnect()
Definition: Database.cc:96

Member Function Documentation

void ora::Database::checkTransaction ( )
private

Definition at line 115 of file Database.cc.

References ora::throwException().

115  {
116  if(!m_impl->m_session->isConnected()) {
117  throwException("No database storage connected.","Database::checkTransaction");
118  }
119  if(!m_impl->m_transaction->isActive()) {
120  throwException("Transaction is not active.","Database::checkTransaction");
121  }
122 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
ora::Configuration & ora::Database::configuration ( )

Definition at line 87 of file Database.cc.

87  {
88  return m_impl->m_session->configuration();
89 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::connect ( const std::string &  connectionString,
bool  readOnly = false 
)

Definition at line 91 of file Database.cc.

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

92  {
93  return m_impl->m_session->connect( connectionString, readOnly );
94 }
const std::string & connectionString()
Definition: Database.cc:104
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
const std::string & ora::Database::connectionString ( )

Definition at line 104 of file Database.cc.

104  {
105  return m_impl->m_session->connectionString();
106 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::Container ora::Database::containerHandle ( const std::string &  name)

Definition at line 236 of file Database.cc.

References cont, and ora::throwException().

Referenced by cond::IOVService::deleteAll(), cond::DbSession::getTypedObject(), cond::DbSession::storeObject(), and cond::DbSession::updateObject().

236  {
237  open();
238  Handle<DatabaseContainer> cont = m_impl->m_session->containerHandle( name );
239  if( !cont ){
240  throwException("Container \""+name+"\" does not exist in the database.",
241  "Database::containerHandle");
242  }
243  return Container( cont );
244 }
EcalChannelStatus Container
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
int cont
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
ora::Container ora::Database::containerHandle ( int  contId)

Definition at line 246 of file Database.cc.

References cont, and ora::throwException().

246  {
247  open();
248  Handle<DatabaseContainer> cont = m_impl->m_session->containerHandle( contId );
249  if( !cont ){
250  std::stringstream messg;
251  messg << "Container with id=" << contId << " not found in the database.";
252  throwException(messg.str(),
253  "Database::containerHandle");
254  }
255  return Container( cont );
256 }
EcalChannelStatus Container
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
int cont
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
std::set< std::string > ora::Database::containers ( )

Definition at line 165 of file Database.cc.

References python.multivaluedict::map().

165  {
166  open();
167  std::set< std::string > contList;
168  const std::map<int, Handle<DatabaseContainer> >& conts = m_impl->m_session->containers();
169  for(std::map<int, Handle<DatabaseContainer> >::const_iterator iC = conts.begin();
170  iC != conts.end(); iC++ ){
171  contList.insert( iC->second->name() );
172  }
173  return contList;
174 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::create ( )

Definition at line 129 of file Database.cc.

129  {
130  bool created = false;
131  if( !exists()){
132  m_impl->m_session->create();
133  created = true;
134  }
135  return created;
136 }
bool exists()
Definition: Database.cc:124
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
template<typename T >
Container ora::Database::createContainer ( const std::string &  name)
template<typename T >
Container ora::Database::createContainer ( )

Referenced by createContainer().

ora::Container ora::Database::createContainer ( const std::string &  className,
std::string  name = "" 
)

Definition at line 200 of file Database.cc.

References cont, ora::ClassUtils::lookupDictionary(), and ora::throwException().

201  {
202  open( true );
204  if( name.empty() ) name = nameForContainer( className );
205  if( m_impl->m_session->containerHandle( name ) ){
206  throwException("Container with name \""+name+"\" already exists in the database.",
207  "Database::createContainer");
208  }
209  Handle<DatabaseContainer> cont = m_impl->m_session->createContainer( name, contType );
210  return Container( cont );
211 }
EcalChannelStatus Container
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
int cont
static std::string nameForContainer(const std::type_info &typeInfo)
Definition: Database.cc:57
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
std::string className(const T &t)
Definition: ClassName.h:30
ora::Container ora::Database::createContainer ( const std::string &  name,
const std::type_info &  typeInfo 
)
private

Definition at line 176 of file Database.cc.

References cont, ora::ClassUtils::lookupDictionary(), and ora::throwException().

177  {
178  open( true );
179  if( m_impl->m_session->containerHandle( name ) ){
180  throwException("Container with name \""+name+"\" already exists in the database.",
181  "Database::createContainer");
182  }
183  Reflex::Type contType = ClassUtils::lookupDictionary( typeInfo );
184  Handle<DatabaseContainer> cont = m_impl->m_session->createContainer( name, contType );
185  return Container( cont );
186 }
EcalChannelStatus Container
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
int cont
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
ora::Container ora::Database::createContainer ( const std::type_info &  typeInfo)
private

Definition at line 188 of file Database.cc.

References cont, ora::ClassUtils::lookupDictionary(), mergeVDriftHistosByStation::name, ora::nameFromClass(), and ora::throwException().

188  {
189  open( true );
190  Reflex::Type contType = ClassUtils::lookupDictionary( typeInfo );
191  std::string name = nameFromClass( contType );
192  if( m_impl->m_session->containerHandle( name ) ){
193  throwException("Container with name \""+name+"\" already exists in the database.",
194  "Database::createContainer");
195  }
196  Handle<DatabaseContainer> cont = m_impl->m_session->createContainer( name, contType );
197  return Container( cont );
198 }
EcalChannelStatus Container
std::string nameFromClass(const Reflex::Type &contType)
Definition: Database.cc:37
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
int cont
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
template<typename T >
ora::Container ora::Database::createContainer ( const std::string &  name)
inline

Definition at line 188 of file Database.h.

References createContainer().

188  {
189  return createContainer( name, typeid(T) );
190 }
Container createContainer()
long double T
template<typename T >
ora::Container ora::Database::createContainer ( )
inline

Definition at line 194 of file Database.h.

194  {
195  return createContainer( typeid(T) );
196 }
Container createContainer()
long double T
void ora::Database::disconnect ( void  )
bool ora::Database::drop ( )

Definition at line 138 of file Database.cc.

References edm::productstatus::dropped(), and python.multivaluedict::map().

138  {
139  bool dropped = false;
140  if( exists()){
141  open();
142  const std::map<int, Handle<DatabaseContainer> >& conts = m_impl->m_session->containers();
143  for(std::map<int, Handle<DatabaseContainer> >::const_iterator iC = conts.begin();
144  iC != conts.end(); iC++ ){
145  iC->second->drop();
146  }
147  m_impl->m_session->drop();
148  dropped = true;
149  }
150  return dropped;
151 }
void open(bool writingAccess=false)
Definition: Database.cc:153
bool exists()
Definition: Database.cc:124
ProductStatus dropped()
Definition: ProductStatus.h:24
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::dropContainer ( const std::string &  name)

Definition at line 227 of file Database.cc.

227  {
228  open();
229  if( !m_impl->m_session->containerHandle( name ) ){
230  return false;
231  }
232  m_impl->m_session->dropContainer( name );
233  return true;
234 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
void ora::Database::erase ( const OId oid)

Definition at line 278 of file Database.cc.

References cont, ora::OId::containerId(), ora::Container::erase(), and ora::OId::itemId().

278  {
279  open();
280  Container cont = containerHandle( oid.containerId() );
281  cont.erase( oid.itemId() );
282 }
EcalChannelStatus Container
void open(bool writingAccess=false)
Definition: Database.cc:153
Container containerHandle(const std::string &name)
Definition: Database.cc:236
void erase(int itemId)
Definition: Container.cc:133
int cont
bool ora::Database::eraseAllNames ( )

Definition at line 303 of file Database.cc.

303  {
304  open();
305  return m_impl->m_session->eraseAllNames();
306 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::eraseObjectName ( const std::string &  name)

Definition at line 298 of file Database.cc.

298  {
299  open();
300  return m_impl->m_session->eraseObjectName( name );
301 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::exists ( )

Definition at line 124 of file Database.cc.

124  {
126  return m_impl->m_session->exists();
127 }
void checkTransaction()
Definition: Database.cc:115
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
template<typename T >
boost::shared_ptr< T > ora::Database::fetch ( const OId oid)
inline

Definition at line 200 of file Database.h.

References cont, ora::OId::containerId(), ora::Container::fetch(), and ora::OId::itemId().

200  {
201  Container cont = containerHandle( oid.containerId() );
202  return cont.fetch<T>( oid.itemId() );
203 }
EcalChannelStatus Container
Container containerHandle(const std::string &name)
Definition: Database.cc:236
int cont
boost::shared_ptr< T > fetch(int itemId)
Definition: Container.h:117
long double T
template<typename T >
boost::shared_ptr< T > ora::Database::fetchByName ( const std::string &  name)
inline

Definition at line 232 of file Database.h.

232  {
233  return boost::static_pointer_cast<T>( getTypedObjectByName( name, typeid(T) ) );
234 }
boost::shared_ptr< void > getTypedObjectByName(const std::string &name, const std::type_info &typeInfo)
Definition: Database.cc:313
long double T
ora::Object ora::Database::fetchItem ( const OId oid)

Definition at line 258 of file Database.cc.

References cont, ora::OId::containerId(), ora::Container::fetchItem(), and ora::OId::itemId().

258  {
259  Container cont = containerHandle( oid.containerId() );
260  return cont.fetchItem( oid.itemId() );
261 }
EcalChannelStatus Container
Object fetchItem(int itemId)
Definition: Container.cc:89
Container containerHandle(const std::string &name)
Definition: Database.cc:236
int cont
ora::Object ora::Database::fetchItemByName ( const std::string &  name)

Definition at line 319 of file Database.cc.

319  {
320  open();
321  return m_impl->m_session->fetchObjectByName( name );
322 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
void ora::Database::flush ( )

Definition at line 284 of file Database.cc.

References python.multivaluedict::map().

Referenced by cond::DbSession::storeObject().

284  {
285  open();
286  const std::map<int,Handle<DatabaseContainer> >& containers = m_impl->m_session->containers();
287  for( std::map<int,Handle<DatabaseContainer> >::const_iterator iCont = containers.begin();
288  iCont != containers.end(); ++iCont ){
289  iCont->second->flush();
290  }
291 }
void open(bool writingAccess=false)
Definition: Database.cc:153
std::set< std::string > containers()
Definition: Database.cc:165
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::Container ora::Database::getContainer ( const std::string &  name,
const std::type_info &  typeInfo 
)
private

Definition at line 213 of file Database.cc.

References ora::getContainerFromSession(), and ora::ClassUtils::lookupDictionary().

214  {
215  open( true );
216  Reflex::Type objType = ClassUtils::lookupDictionary( typeInfo );
217  return getContainerFromSession( containerName, objType, *m_impl->m_session );
218 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
Container getContainerFromSession(const std::string &name, const Reflex::Type &contType, DatabaseSession &session)
Definition: Database.cc:41
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
ora::Container ora::Database::getContainer ( const std::type_info &  typeInfo)
private

Definition at line 220 of file Database.cc.

References ora::getContainerFromSession(), ora::ClassUtils::lookupDictionary(), and ora::nameFromClass().

220  {
221  open( true );
222  Reflex::Type objType = ClassUtils::lookupDictionary( typeInfo );
223  std::string contName = nameFromClass( objType );
224  return getContainerFromSession( contName, objType, *m_impl->m_session);
225 }
std::string nameFromClass(const Reflex::Type &contType)
Definition: Database.cc:37
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
Container getContainerFromSession(const std::string &name, const Reflex::Type &contType, DatabaseSession &session)
Definition: Database.cc:41
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
bool ora::Database::getItemId ( const std::string &  name,
ora::OId destination 
)

Definition at line 308 of file Database.cc.

308  {
309  open();
310  return m_impl->m_session->getItemId( name, destination );
311 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::getNamesForObject ( const OId oid,
std::vector< std::string > &  destination 
)

Definition at line 324 of file Database.cc.

References ora::OId::containerId(), and ora::OId::itemId().

325  {
326  open();
327  return m_impl->m_session->getNamesForObject( oid.containerId(), oid.itemId(), destination );
328 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
boost::shared_ptr< void > ora::Database::getTypedObjectByName ( const std::string &  name,
const std::type_info &  typeInfo 
)
private

Definition at line 313 of file Database.cc.

References ora::ClassUtils::lookupDictionary().

313  {
314  open();
315  Reflex::Type objType = ClassUtils::lookupDictionary( typeInfo );
316  return m_impl->m_session->fetchTypedObjectByName( name, objType );
317 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
template<typename T >
OId ora::Database::insert ( const std::string &  containerName,
const T data 
)
template<typename T >
OId ora::Database::insert ( const T data)
template<typename T >
ora::OId ora::Database::insert ( const std::string &  containerName,
const T data 
)
inline

Definition at line 207 of file Database.h.

References cont, ora::Container::id(), and ora::Container::insert().

208  {
209  Container cont = getContainer( containerName, typeid(data) );
210  int itemId = cont.insert( data );
211  return OId( cont.id(), itemId );
212 }
EcalChannelStatus Container
int cont
Container getContainer(const std::string &name, const std::type_info &typeInfo)
Definition: Database.cc:213
template<typename T >
ora::OId ora::Database::insert ( const T data)
inline

Definition at line 216 of file Database.h.

References cont, ora::Container::id(), and ora::Container::insert().

216  {
217  Container cont = getContainer( typeid(data) );
218  int itemId = cont.insert( data );
219  return OId( cont.id(), itemId );
220 }
EcalChannelStatus Container
int cont
Container getContainer(const std::string &name, const std::type_info &typeInfo)
Definition: Database.cc:213
ora::OId ora::Database::insertItem ( const std::string &  containerName,
const Object data 
)

Definition at line 263 of file Database.cc.

References cont, ora::getContainerFromSession(), ora::Container::id(), ora::Container::insertItem(), and ora::Object::type().

264  {
265  open( true );
266  Container cont = getContainerFromSession( containerName, dataObject.type(), *m_impl->m_session );
267  int itemId = cont.insertItem( dataObject );
268  return OId( cont.id(), itemId );
269 }
EcalChannelStatus Container
int insertItem(const Object &data)
Definition: Container.cc:101
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
int cont
Container getContainerFromSession(const std::string &name, const Reflex::Type &contType, DatabaseSession &session)
Definition: Database.cc:41
bool ora::Database::isConnected ( )

Definition at line 100 of file Database.cc.

100  {
101  return m_impl->m_session->isConnected();
102 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
bool ora::Database::listObjectNames ( std::vector< std::string > &  destination)

Definition at line 330 of file Database.cc.

330  {
331  open();
332  return m_impl->m_session->listObjectNames( destination );
333 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
std::string ora::Database::nameForContainer ( const std::type_info &  typeInfo)
static

Definition at line 57 of file Database.cc.

References ora::ClassUtils::lookupDictionary(), and ora::nameFromClass().

57  {
58  Reflex::Type contType = ClassUtils::lookupDictionary( typeInfo );
59  return nameFromClass( contType );
60 }
std::string nameFromClass(const Reflex::Type &contType)
Definition: Database.cc:37
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
Definition: ClassUtils.cc:84
std::string ora::Database::nameForContainer ( const std::string &  className)
static

Definition at line 62 of file Database.cc.

References className().

62  {
63  return className;
64 }
std::string className(const T &t)
Definition: ClassName.h:30
void ora::Database::open ( bool  writingAccess = false)
private

Definition at line 153 of file Database.cc.

References ora::Configuration::automaticDatabaseCreation(), and ora::throwException().

Referenced by python.Vispa.Plugins.ConfigEditor.ConfigEditorTabController.ConfigEditorTabController::importConfig().

153  {
155  if( !m_impl->m_session->exists() ){
156  if( writingAccess && m_impl->m_session->configuration().properties().getFlag( Configuration::automaticDatabaseCreation() ) ){
157  m_impl->m_session->create();
158  } else {
159  throwException("Database does not exists in \""+m_impl->m_session->connectionString()+"\"","Database::open");
160  }
161  }
162  m_impl->m_session->open();
163 }
void checkTransaction()
Definition: Database.cc:115
static std::string automaticDatabaseCreation()
Definition: Configuration.cc:5
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
ora::Database & ora::Database::operator= ( const Database rhs)

Definition at line 82 of file Database.cc.

References m_impl.

82  {
83  if( this != &rhs ) m_impl = rhs.m_impl;
84  return *this;
85 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
void ora::Database::setObjectName ( const std::string &  name,
const OId oid 
)

Definition at line 293 of file Database.cc.

References ora::OId::containerId(), and ora::OId::itemId().

293  {
294  open( true );
295  m_impl->m_session->setObjectName( name, oid.containerId(), oid.itemId() );
296 }
void open(bool writingAccess=false)
Definition: Database.cc:153
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::SharedSession & ora::Database::storageAccessSession ( )

Definition at line 341 of file Database.cc.

341  {
342  return m_impl->m_session->storageAccessSession();
343 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
ora::Transaction & ora::Database::transaction ( )

Definition at line 108 of file Database.cc.

References ora::throwException().

108  {
109  if(!m_impl->m_session->isConnected()) {
110  throwException("No database storage connected.","Database::transaction");
111  }
112  return *m_impl->m_transaction;
113 }
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
template<typename T >
void ora::Database::update ( const OId oid,
const T data 
)
inline

Definition at line 224 of file Database.h.

References cont, ora::OId::containerId(), runTheMatrix::data, ora::OId::itemId(), and ora::Container::update().

Referenced by python.seqvaluedict.seqdict::__setslice__(), python.Vispa.Gui.VispaWidget.VispaWidget::autosize(), python.Vispa.Views.LineDecayView.LineDecayContainer::createObject(), python.Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), python.Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), python.seqvaluedict.seqdict::extend(), python.Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), python.Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), python.Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), python.Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), python.Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), python.Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), python.Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), python.Vispa.Gui.FindDialog.FindDialog::reset(), python.Vispa.Gui.PortConnection.PointToPointConnection::select(), python.Vispa.Gui.VispaWidget.VispaWidget::select(), python.Vispa.Views.LineDecayView.LineDecayContainer::select(), python.Vispa.Gui.VispaWidget.VispaWidget::setText(), python.Vispa.Gui.VispaWidget.VispaWidget::setTitle(), python.Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), python.Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and python.Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

225  {
226  Container cont = containerHandle( oid.containerId() );
227  cont.update( oid.itemId(), data );
228 }
EcalChannelStatus Container
Container containerHandle(const std::string &name)
Definition: Database.cc:236
void update(int itemId, const T &data)
Definition: Container.h:129
int cont
void ora::Database::updateItem ( const OId oid,
const Object data 
)

Definition at line 271 of file Database.cc.

References cont, ora::OId::containerId(), ora::OId::itemId(), and ora::Container::updateItem().

272  {
273  open();
274  Container cont = containerHandle( oid.containerId() );
275  cont.updateItem( oid.itemId(), dataObject );
276 }
void updateItem(int itemId, const Object &data)
Definition: Container.cc:116
EcalChannelStatus Container
void open(bool writingAccess=false)
Definition: Database.cc:153
Container containerHandle(const std::string &name)
Definition: Database.cc:236
int cont
ora::DatabaseUtility ora::Database::utility ( )

Definition at line 335 of file Database.cc.

335  {
337  Handle<DatabaseUtilitySession> utilSession = m_impl->m_session->utility();
338  return DatabaseUtility( utilSession );
339 }
void checkTransaction()
Definition: Database.cc:115
boost::shared_ptr< DatabaseImpl > m_impl
Definition: Database.h:180

Member Data Documentation

boost::shared_ptr<DatabaseImpl> ora::Database::m_impl
private

Definition at line 180 of file Database.h.

Referenced by operator=().