| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SimpleOuputModule Class Reference

Write out all TES objects. More...

#include <SimpleOuputModule.h>

Inheritance diagram for SimpleOuputModule:

[legend]
Collaboration diagram for SimpleOuputModule:
[legend]
List of all members.

Public Member Functions

 SimpleOuputModule (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~SimpleOuputModule ()
virtual StatusCode initialize ()
virtual StatusCode execute ()
virtual StatusCode finalize ()
virtual StatusCode sysExecute ()
void put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
void put (DataObject *object, const std::string &address, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
TYPE * getDet (const std::string &location) const
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
bool exist (const std::string &location, const bool useRootInTES=true) const
bool existDet (IDataProviderSvc *svc, const std::string &location) const
bool existDet (const std::string &location) const
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
bool registerContext () const
INTupleSvcevtColSvc () const
IAlgContextSvccontextSvc () const
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
SERVICE * svc (const std::string &name, const bool create=true) const
IUpdateManagerSvcupdMgrSvc () const
IDataProviderSvcfastContainersSvc () const
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
MsgStreammsgStream (const MSG::Level level) const
MsgStreamalways () const
MsgStreamfatal () const
MsgStreamerr () const
MsgStreamerror () const
MsgStreamwarning () const
MsgStreaminfo () const
MsgStreamdebug () const
MsgStreamverbose () const
MsgStreammsg () const
const Statisticscounters () const
StatEntitycounter (const std::string &tag) const
MSG::Level msgLevel () const
bool msgLevel (const MSG::Level level) const
void resetMsgStream () const
bool typePrint () const
bool propsPrint () const
bool statPrint () const
bool errorsPrint () const
long printStat (const MSG::Level level=MSG::ALWAYS) const
long printErrors (const MSG::Level level=MSG::ALWAYS) const
long printProps (const MSG::Level level=MSG::ALWAYS) const
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
StatusCode runUpdate ()
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
StatusCode release (const IInterface *interface) const
unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual StatusCode sysStart ()
virtual StatusCode sysInitialize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysBeginRun ()
virtual StatusCode sysEndRun ()
virtual const std::string & name () const
virtual const std::string & version () const
virtual StatusCode configure ()
virtual StatusCode terminate ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual bool isExecuted () const
virtual void setExecuted (bool state)
virtual void resetExecuted ()
virtual StatusCode beginRun ()
virtual StatusCode endRun ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual bool isEnabled () const
virtual bool filterPassed () const
virtual void setFilterPassed (bool state)
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
void setOutputLevel (int level)
IAuditorSvcauditorSvc () const
IChronoStatSvcchronoSvc () const
IChronoStatSvcchronoStatService () const
IDataProviderSvcdetSvc () const
IDataProviderSvcdetDataService () const
IConversionSvcdetCnvSvc () const
IConversionSvcdetDataCnvService () const
IDataProviderSvceventSvc () const
IDataProviderSvcevtSvc () const
IDataProviderSvceventDataService () const
IConversionSvceventCnvSvc () const
IConversionSvceventDataCnvService () const
IHistogramSvchistoSvc () const
IHistogramSvchistogramDataService () const
IMessageSvcmsgSvc () const
IMessageSvcmessageService () const
INTupleSvcntupleSvc () const
INTupleSvcntupleService () const
IRndmGenSvcrandSvc () const
IToolSvctoolSvc () const
IExceptionSvcexceptionSvc () const
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
StatusCode createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg)
std::vector< Algorithm * > * subAlgorithms () const
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
StatusCode setProperties ()
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
unsigned long addRef ()
StatusCode queryInterface (const InterfaceID &riid, void **)

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
typedef std::map< std::string,
unsigned int > 
Counter
typedef std::vector< IAlgTool * > AlgTools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
typedef std::vector< ServiceEntryServices

Protected Member Functions

StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
bool isInitialized () const
bool isFinalized () const
int outputLevel () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Member Functions

StatusCode createReps (DataObject *dobj)
StatusCode fillRepRefs (DataObject *dobj)

Private Attributes

std::string m_filename
 Property: Filename.
IRootIOSvcm_rio
IConversionSvcm_cnv

Detailed Description

Write out all TES objects.

This algorithm uses RootIOSvc to write out all TES objects which have RootIO converters.

bv@bnl.gov Mon Jun 30 11:39:20 2008

Definition at line 25 of file SimpleOuputModule.h.


Constructor & Destructor Documentation

SimpleOuputModule::SimpleOuputModule ( const std::string &  name,
ISvcLocator pSvcLocator 
)

Definition at line 10 of file SimpleOuputModule.cc.

00012     : GaudiAlgorithm(name,pSvcLocator)
00013     , m_rio(0)
00014     , m_cnv(0)
00015 {
00016 }

SimpleOuputModule::~SimpleOuputModule (  )  [virtual]

Definition at line 18 of file SimpleOuputModule.cc.

00019 {
00020 }


Member Function Documentation

StatusCode SimpleOuputModule::initialize (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 22 of file SimpleOuputModule.cc.

00023 {
00024     StatusCode sc = this->GaudiAlgorithm::initialize();
00025     if (sc.isFailure()) return sc;
00026 
00027     sc = serviceLocator()->getService("RootIOCnvSvc",
00028                                       IID_IConversionSvc,
00029                                       *pp_cast<IInterface>(&m_cnv));
00030     if (sc.isFailure()) {
00031         error() << "Failed to get IConversionSvc RootIOCnvSvc" << endreq;
00032         return sc;
00033     }
00034 
00035     sc = m_cnv->queryInterface(IRootIOSvc::interfaceID(),(void**)&m_rio);
00036     if (sc.isFailure()) {
00037         error() << "Failed to get IRootIOSvc interface from RootIOCnvSvc" << endreq;
00038         return sc;
00039     }
00040 
00041     return sc;
00042 }

StatusCode SimpleOuputModule::execute (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 44 of file SimpleOuputModule.cc.

00045 {
00046     DataObject *d = get<DataObject>("/Event");
00047     StatusCode sc = this->createReps(d);
00048     if (sc.isFailure()) {
00049         error() << "Failed in calling createReps" << endreq;
00050         return sc;
00051     }
00052 
00053     sc = this->fillRepRefs(d);
00054     if (sc.isFailure()) {
00055         error() << "Failed in calling fillRepRefs" << endreq;
00056     }
00057     return sc;
00058 }

StatusCode SimpleOuputModule::finalize (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 133 of file SimpleOuputModule.cc.

00134 {
00135 
00136     return this->GaudiAlgorithm::finalize();
00137 }

StatusCode SimpleOuputModule::createReps ( DataObject dobj  )  [private]

Definition at line 60 of file SimpleOuputModule.cc.

00061 {
00062     IRegistry* dr = dobj->registry();
00063     using namespace DataSvcHelpers;
00064     RegistryEntry* dre = dynamic_cast<RegistryEntry*>(dr);
00065     if (!dre) {
00066         error() << "Failed in createReps to get RegistryEntry for " 
00067                 << dr->identifier() << endreq;
00068         return StatusCode::FAILURE;
00069     }
00070     
00071     RegistryEntry::Iterator it = dre->begin(), done = dre->end();
00072     for (; it != done; ++it) {
00073         string id = (*it)->identifier();
00074 
00075         DataObject* child = get<DataObject>(id);
00076         if (!child) {
00077             error() << "Failed in createReps to get object for " 
00078                     << id << endreq;
00079             return StatusCode::FAILURE;
00080         }
00081 
00082         IOpaqueAddress* addr = 0;
00083         StatusCode sc = m_cnv->createRep(child,addr);
00084         if (sc.isFailure()) {
00085             warning() << "Failed to createRep for " << id << ", skipping" << endreq;
00086             continue;
00087         }
00088         IRegistry* reg = child->registry();
00089         reg->setAddress(addr);
00090 
00091         sc = this->createReps(child);
00092         if (sc.isFailure()) return sc;
00093     }
00094     return StatusCode::SUCCESS;
00095 }

StatusCode SimpleOuputModule::fillRepRefs ( DataObject dobj  )  [private]

Definition at line 97 of file SimpleOuputModule.cc.

00098 {
00099     IRegistry* dr = dobj->registry();
00100     using namespace DataSvcHelpers;
00101     RegistryEntry* dre = dynamic_cast<RegistryEntry*>(dr);
00102     if (!dre) {
00103         error() << "Failed in fillReps to get RegistryEntry for " 
00104                 << dr->identifier() << endreq;
00105         return StatusCode::FAILURE;
00106     }
00107     
00108     RegistryEntry::Iterator it = dre->begin(), done = dre->end();
00109     for (; it != done; ++it) {
00110         string id = (*it)->identifier();
00111 
00112         DataObject* child = get<DataObject>(id);
00113         if (!child) {
00114             error() << "Failed to in fillReps get object for "
00115                     << id << endreq;
00116             return StatusCode::FAILURE;
00117         }
00118 
00119         IRegistry* reg = child->registry();
00120         StatusCode sc = m_cnv->fillRepRefs(reg->address(), child);
00121         if (sc.isFailure()) {
00122             warning() << "Failed to fillRepRefs with " 
00123                       << id << ", skipping" << endreq;
00124             continue;
00125         }
00126 
00127         sc = this->fillRepRefs(child);
00128         if (sc.isFailure()) return sc;
00129     }
00130     return StatusCode::SUCCESS;
00131 }


Member Data Documentation

std::string SimpleOuputModule::m_filename [private]

Property: Filename.

Write out everything to a single filename.

Definition at line 44 of file SimpleOuputModule.h.

IRootIOSvc* SimpleOuputModule::m_rio [private]

Definition at line 46 of file SimpleOuputModule.h.

IConversionSvc* SimpleOuputModule::m_cnv [private]

Definition at line 47 of file SimpleOuputModule.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:58:42 2011 for RootIOTest by doxygen 1.4.7