|
Gaudi Framework, version v21r9 |
| Home | Generated: 3 May 2010 |
#include "GaudiPoolDb/PoolDbIOHandler.h"#include "GaudiKernel/ObjectContainerBase.h"#include "GaudiKernel/ContainedObject.h"#include "GaudiKernel/LinkManager.h"#include "GaudiKernel/IRegistry.h"#include "GaudiKernel/MsgStream.h"#include "GaudiKernel/SmartRef.h"#include <stdexcept>#include <iostream>#include "TROOT.h"#include "TFile.h"#include "TClass.h"#include "TStreamerInfo.h"#include "Cintex/Cintex.h"#include "POOLCore/Token.h"#include "POOLCore/Reference.h"#include "StorageSvc/DbReflex.h"#include "StorageSvc/DataCallBack.h"#include "StorageSvc/DbDataHandlerGuard.h"#include <memory>

Go to the source code of this file.
Namespaces | |
| namespace | ROOT |
| namespace | ROOT::Cintex |
| namespace | pool |
| namespace | GaudiPoolDb |
Functions | |
| bool | ROOT::Cintex::IsTypeOf (Type &typ, const std::string &base_name) |
| const std::string | pool::typeName (const std::type_info &typ) |
| void | resetLastLink () |
| void | pushCurrentDataObject (DataObject **pobjAddr) |
| void | popCurrentDataObject () |
| static void | getOID_40000 (TBuffer &b, TClass *cl, Token::OID_t &oid) |
| template<class T> | |
| static bool | makeStreamer (MsgStream &log) |
| bool | GaudiPoolDb::patchStreamers (MsgStream &log) |
Variables | |
| static const DataObject * | last_link_object = 0 |
| static int | last_link_hint = -1 |
| static void getOID_40000 | ( | TBuffer & | b, | |
| TClass * | cl, | |||
| Token::OID_t & | oid | |||
| ) | [static] |
Definition at line 202 of file PoolDbIOHandler.cpp.
00202 { 00203 unsigned long loid[2]; 00204 UInt_t start, count, tmp; 00205 // read the class version from the buffer 00206 /* Version_t vsn = */ b.ReadVersion(&start, &count, 0); 00207 switch(count) { 00208 case 22: // These tokens were written as pair<long,long> 00209 b >> tmp; // 00210 b.ReadFastArray(loid,2); // There was a bug in POOL.... 00211 oid.first = loid[0]; 00212 oid.second = loid[1]; 00213 break; // see TBuffer::ReadFastArray(ulong*, int) 00214 case 14: // Normal case: version:checksum+8 Bytes 00215 b >> tmp; // 00216 case 10: // Normal case: version:checksum+8 Bytes 00217 case 8: // Without checksum and version 00218 default: // No better idea 00219 b.ReadFastArray(&oid.first, 2); 00220 break; 00221 } 00222 // Check that the buffer position correesponds to the byte count 00223 b.CheckByteCount(start, count, cl); 00224 }
Definition at line 281 of file PoolDbIOHandler.cpp.
00281 { 00282 std::string cl_name = typeName(typeid(T)); 00283 ROOT::Reflex::Type t = ROOT::Reflex::Type::ByName(cl_name); 00284 if ( t ) { 00285 TClass* c = gROOT->GetClass(cl_name.c_str()); 00286 if ( c ) { 00287 TClassStreamer* s = new PoolDbIOHandler<T>(t,c); 00288 c->AdoptStreamer(s); 00289 log << MSG::DEBUG << "Installed IOHandler for class " << cl_name << endmsg; 00290 return true; 00291 } 00292 else if ( !c ) { 00293 log << MSG::ERROR << "[No ROOT TClass] Failed to install IOHandler for class " << cl_name << endmsg; 00294 } 00295 } 00296 else { 00297 log << MSG::ERROR << "[No Reflection Type] Failed to install IOHandler for class " << cl_name << endmsg; 00298 } 00299 return false; 00300 }
| void popCurrentDataObject | ( | ) |
Definition at line 66 of file PoolDbIOHandler.cpp.
00066 { 00067 Gaudi::popCurrentDataObject(); 00068 resetLastLink(); 00069 }
| void pushCurrentDataObject | ( | DataObject ** | pobjAddr | ) |
Definition at line 61 of file PoolDbIOHandler.cpp.
00061 { 00062 Gaudi::pushCurrentDataObject(pobjAddr); 00063 resetLastLink(); 00064 }
| void resetLastLink | ( | ) |
Definition at line 54 of file PoolDbIOHandler.cpp.
00054 { 00055 last_link_object = 0; 00056 last_link_hint = -1; 00057 }
int last_link_hint = -1 [static] |
Definition at line 52 of file PoolDbIOHandler.cpp.
const DataObject* last_link_object = 0 [static] |
Definition at line 51 of file PoolDbIOHandler.cpp.