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::TransactionCache Class Reference

#include <TransactionCache.h>

Public Member Functions

void addContainer (int id, const std::string &name, Handle< DatabaseContainer > &contPtr)
 
void clear ()
 
const std::map< int, Handle
< DatabaseContainer > > & 
containers ()
 
bool dbExists ()
 
bool dbExistsLoaded ()
 
void eraseContainer (int id, const std::string &name)
 
Handle< DatabaseContainergetContainer (int id)
 
Handle< DatabaseContainergetContainer (const std::string &name)
 
boost::shared_ptr< void > getNamedReference (const std::string &name)
 
bool isLoaded ()
 
void setDbExists (bool exists)
 
void setLoaded ()
 
void setNamedReference (const std::string &name, boost::shared_ptr< void > &data)
 
void setUtility (Handle< DatabaseUtilitySession > &utility)
 
 TransactionCache ()
 
Handle< DatabaseUtilitySessionutility ()
 
virtual ~TransactionCache ()
 

Private Member Functions

void cleanUpNamedRefCache ()
 

Private Attributes

std::map< int, Handle
< DatabaseContainer > > 
m_containersById
 
std::map< std::string, int > m_containersByName
 
std::pair< bool, bool > m_dbExists
 
bool m_loaded
 
std::map< std::string,
boost::weak_ptr< void > > 
m_namedRefCache
 
Handle< DatabaseUtilitySessionm_utility
 

Detailed Description

Definition at line 16 of file TransactionCache.h.

Constructor & Destructor Documentation

ora::TransactionCache::TransactionCache ( )

Definition at line 5 of file TransactionCache.cc.

5  :
6  m_dbExists(false,false),
9  m_utility(),
10  m_loaded( false ),
12 }
std::map< int, Handle< DatabaseContainer > > m_containersById
std::map< std::string, int > m_containersByName
std::map< std::string, boost::weak_ptr< void > > m_namedRefCache
Handle< DatabaseUtilitySession > m_utility
std::pair< bool, bool > m_dbExists
ora::TransactionCache::~TransactionCache ( )
virtual

Definition at line 14 of file TransactionCache.cc.

14  {
15  clear();
16 }

Member Function Documentation

void ora::TransactionCache::addContainer ( int  id,
const std::string &  name,
Handle< DatabaseContainer > &  contPtr 
)

Definition at line 45 of file TransactionCache.cc.

47  {
48  m_containersById.insert( std::make_pair( id, contPtr ) );
49  m_containersByName.insert( std::make_pair( name, id ) );
50 }
std::map< int, Handle< DatabaseContainer > > m_containersById
std::map< std::string, int > m_containersByName
void ora::TransactionCache::cleanUpNamedRefCache ( )
private

Definition at line 96 of file TransactionCache.cc.

References python.multivaluedict::map().

96  {
97  std::vector<std::string> namesToDelete;
98  for( std::map<std::string,boost::weak_ptr<void> >::const_iterator iEntry = m_namedRefCache.begin();
99  iEntry != m_namedRefCache.end(); iEntry++ ){
100  if( iEntry->second.expired() ) namesToDelete.push_back( iEntry->first );
101  }
102  for( std::vector<std::string>::const_iterator iName = namesToDelete.begin();
103  iName != namesToDelete.end(); iName++ ){
104  m_namedRefCache.erase( *iName );
105  }
106 }
std::map< std::string, boost::weak_ptr< void > > m_namedRefCache
void ora::TransactionCache::clear ( void  )

Definition at line 18 of file TransactionCache.cc.

References python.multivaluedict::map().

Referenced by python.Vispa.Views.WidgetView.WidgetView::closeEvent(), python.Vispa.Views.BoxDecayView.BoxDecayView::closeEvent(), python.Vispa.Share.FindAlgorithm.FindAlgorithm::findUsingFindDialog(), python.Vispa.Views.LineDecayView.LineDecayView::setDataObjects(), python.Vispa.Views.WidgetView.WidgetView::setDataObjects(), python.Vispa.Views.TreeView.TreeView::updateContent(), python.Vispa.Views.TableView.TableView::updateContent(), python.Vispa.Views.BoxDecayView.BoxDecayView::updateContent(), and python.Vispa.Views.PropertyView.PropertyView::updateContent().

18  {
19  m_dbExists.first = false;
20  m_dbExists.second = false;
21  for( std::map<int, Handle<DatabaseContainer> >::iterator iCont = m_containersById.begin();
22  iCont != m_containersById.end(); iCont++ ){
23  iCont->second.clear();
24  }
25  m_utility.clear();
26  m_containersById.clear();
27  m_containersByName.clear();
28  m_loaded = false;
29  m_namedRefCache.clear();
30 }
std::map< int, Handle< DatabaseContainer > > m_containersById
std::map< std::string, int > m_containersByName
std::map< std::string, boost::weak_ptr< void > > m_namedRefCache
Handle< DatabaseUtilitySession > m_utility
std::pair< bool, bool > m_dbExists
const std::map< int, ora::Handle< ora::DatabaseContainer > > & ora::TransactionCache::containers ( )

Definition at line 76 of file TransactionCache.cc.

76  {
77  return m_containersById;
78 }
std::map< int, Handle< DatabaseContainer > > m_containersById
bool ora::TransactionCache::dbExists ( )

Definition at line 41 of file TransactionCache.cc.

41  {
42  return m_dbExists.second;
43 }
std::pair< bool, bool > m_dbExists
bool ora::TransactionCache::dbExistsLoaded ( )

Definition at line 37 of file TransactionCache.cc.

37  {
38  return m_dbExists.first;
39 }
std::pair< bool, bool > m_dbExists
void ora::TransactionCache::eraseContainer ( int  id,
const std::string &  name 
)

Definition at line 52 of file TransactionCache.cc.

53  {
54  m_containersById.erase( id );
55  m_containersByName.erase( name );
56 }
std::map< int, Handle< DatabaseContainer > > m_containersById
std::map< std::string, int > m_containersByName
ora::Handle< ora::DatabaseContainer > ora::TransactionCache::getContainer ( int  id)

Definition at line 58 of file TransactionCache.cc.

58  {
60  std::map<int, Handle<DatabaseContainer> >::iterator iCont = m_containersById.find( id );
61  if( iCont != m_containersById.end() ){
62  instance = iCont->second;
63  }
64  return instance;
65 }
std::map< int, Handle< DatabaseContainer > > m_containersById
ora::Handle< ora::DatabaseContainer > ora::TransactionCache::getContainer ( const std::string &  name)

Definition at line 67 of file TransactionCache.cc.

67  {
69  std::map<std::string, int>::iterator iId = m_containersByName.find( name );
70  if( iId == m_containersByName.end() ){
71  return instance;
72  }
73  return getContainer( iId->second );
74 }
Handle< DatabaseContainer > getContainer(int id)
std::map< std::string, int > m_containersByName
boost::shared_ptr< void > ora::TransactionCache::getNamedReference ( const std::string &  name)

Definition at line 113 of file TransactionCache.cc.

References runTheMatrix::ret.

113  {
115  boost::shared_ptr<void> ret;
116  std::map<std::string,boost::weak_ptr<void> >::const_iterator iEntry = m_namedRefCache.find( name );
117  if( iEntry != m_namedRefCache.end() ){
118  ret = iEntry->second.lock();
119  }
120  return ret;
121 }
std::map< std::string, boost::weak_ptr< void > > m_namedRefCache
bool ora::TransactionCache::isLoaded ( )

Definition at line 88 of file TransactionCache.cc.

88  {
89  return m_loaded;
90 }
void ora::TransactionCache::setDbExists ( bool  exists)

Definition at line 32 of file TransactionCache.cc.

32  {
33  m_dbExists.first = true;
34  m_dbExists.second = exists;
35 }
std::pair< bool, bool > m_dbExists
void ora::TransactionCache::setLoaded ( )

Definition at line 92 of file TransactionCache.cc.

92  {
93  m_loaded = true;
94 }
void ora::TransactionCache::setNamedReference ( const std::string &  name,
boost::shared_ptr< void > &  data 
)

Definition at line 108 of file TransactionCache.cc.

109  {
110  m_namedRefCache.insert( std::make_pair( name, boost::weak_ptr<void>(data) ) );
111 }
std::map< std::string, boost::weak_ptr< void > > m_namedRefCache
void ora::TransactionCache::setUtility ( Handle< DatabaseUtilitySession > &  utility)

Definition at line 80 of file TransactionCache.cc.

80  {
82 }
Handle< DatabaseUtilitySession > utility()
Handle< DatabaseUtilitySession > m_utility
ora::Handle< ora::DatabaseUtilitySession > ora::TransactionCache::utility ( )

Definition at line 84 of file TransactionCache.cc.

84  {
85  return m_utility;
86 }
Handle< DatabaseUtilitySession > m_utility

Member Data Documentation

std::map<int, Handle<DatabaseContainer> > ora::TransactionCache::m_containersById
private

Definition at line 59 of file TransactionCache.h.

std::map<std::string, int> ora::TransactionCache::m_containersByName
private

Definition at line 58 of file TransactionCache.h.

std::pair<bool,bool> ora::TransactionCache::m_dbExists
private

Definition at line 57 of file TransactionCache.h.

bool ora::TransactionCache::m_loaded
private

Definition at line 61 of file TransactionCache.h.

std::map<std::string,boost::weak_ptr<void> > ora::TransactionCache::m_namedRefCache
private

Definition at line 62 of file TransactionCache.h.

Handle<DatabaseUtilitySession> ora::TransactionCache::m_utility
private

Definition at line 60 of file TransactionCache.h.