CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
KeyList.cc
Go to the documentation of this file.
3 
4 namespace cond {
5 
6  namespace persistency {
7 
8  void KeyList::init( IOVProxy iovProxy ){
9  m_proxy = iovProxy;
10  m_data.clear();
11  m_objects.clear();
12  }
13 
14  void KeyList::load( const std::vector<unsigned long long>& keys ){
15  std::shared_ptr<SessionImpl> simpl = m_proxy.session();
16  if( !simpl.get() ) cond::throwException("The KeyList has not been initialized.","KeyList::load");
17  Session s( simpl );
18  s.transaction().start( true );
19  m_isOra = s.isOraSession();
20  m_data.clear();
21  m_objects.resize(keys.size());
22  for (size_t i=0; i<keys.size(); ++i) {
23  m_objects[i].reset();
24  if (keys[i]!=0) {
25  auto p = m_proxy.find(keys[i]);
26  if ( p!= m_proxy.end()) {
27  auto item = m_data.insert( std::make_pair( i, std::make_pair("",std::make_pair(cond::Binary(),cond::Binary()) ) ) );
28  if( ! s.fetchPayloadData( (*p).payloadId, item.first->second.first,
29  item.first->second.second.first, item.first->second.second.second ) )
30  cond::throwException("The Iov contains a broken payload reference.","KeyList::load");
31  }
32  }
33  }
34  s.transaction().commit();
35  }
36  }
37 }
38 
39 
int i
Definition: DBlmapReader.cc:9
void start(bool readOnly=true)
Definition: Session.cc:22
Transaction & transaction()
Definition: Session.cc:66
std::map< size_t, std::pair< std::string, std::pair< cond::Binary, cond::Binary > > > m_data
Definition: KeyList.h:61
Iterator find(cond::Time_t time)
Definition: IOVProxy.cc:288
bool fetchPayloadData(const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
Definition: Session.cc:195
std::vector< boost::shared_ptr< void > > m_objects
Definition: KeyList.h:62
void throwException(std::string const &message, std::string const &methodName)
Definition: Exception.cc:17
void init(IOVProxy iovProxy)
Definition: KeyList.cc:8
void load(const std::vector< unsigned long long > &keys)
Definition: KeyList.cc:14
Iterator end() const
Definition: IOVProxy.cc:265
const std::shared_ptr< SessionImpl > & session() const
Definition: IOVProxy.cc:361