#include <DaqEventConverter.h>
Inheritance diagram for DybDaq::DaqEventConverter:
Public Types | |
| INVALID_ADDRESS | |
| INVALID_OBJECT | |
| NO_MEMORY | |
| BAD_STORAGE_TYPE | |
| NO_SOURCE_OBJECT | |
| ICONVERSIONSVC_LAST_ERROR | |
| SUCCESS | |
| NO_INTERFACE | |
| VERSMISMATCH | |
| LAST_ERROR | |
| enum | Status |
Public Member Functions | |
| DaqEventConverter (unsigned char storageType, const CLID &clid, ISvcLocator *svc) | |
| Creates an instance of this class. | |
| DaqEventConverter (ISvcLocator *svc) | |
| Creates an instance of this class. | |
| ~DaqEventConverter () | |
| Destroys the instance of this class. | |
| virtual StatusCode | createObj (IOpaqueAddress *addr, DataObject *&pObject) |
| Create DataObject based on the supplied IOpaqueAddress. | |
| virtual long | repSvcType () const |
| Bookkeepting method used by ConverterSvc class. | |
| virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvInterface) |
| virtual unsigned long | addRef () |
| virtual unsigned long | release () |
| virtual StatusCode | initialize () |
| virtual StatusCode | finalize () |
| virtual StatusCode | setDataProvider (IDataProviderSvc *svc) |
| virtual IDataProviderSvc * | dataProvider () const |
| virtual StatusCode | setConversionSvc (IConversionSvc *svc) |
| virtual IConversionSvc * | conversionSvc () const |
| virtual StatusCode | setAddressCreator (IAddressCreator *creator) |
| virtual IAddressCreator * | addressCreator () const |
| virtual const CLID & | objType () const |
| virtual long | i_repSvcType () const |
| virtual StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
| virtual StatusCode | updateObj (IOpaqueAddress *pAddress, DataObject *refpObject) |
| virtual StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
| virtual StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress) |
| virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
| virtual StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) |
| virtual StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
| StatusCode | service (const std::string &name, T *&psvc, bool createIf=false) const |
| StatusCode | service (const std::string &type, const std::string &name, T *&psvc) const |
Static Public Member Functions | |
| static const long | storageType () |
| Required by converter factory. | |
| static const CLID & | classID () |
| Required by converter factory. | |
| static const InterfaceID & | interfaceID () |
Public Attributes | |
| INVALID_ADDRESS | |
| INVALID_OBJECT | |
| NO_MEMORY | |
| BAD_STORAGE_TYPE | |
| NO_SOURCE_OBJECT | |
| ICONVERSIONSVC_LAST_ERROR | |
Protected Member Functions | |
| ISvcLocator * | serviceLocator () const |
| IMessageSvc * | msgSvc () const |
| IMessageSvc * | messageService () const |
| IDataManagerSvc * | dataManager () const |
Private Member Functions | |
| DaqEventConverter () | |
| Suppress default. | |
| DaqEventConverter (const DaqEventConverter &rhs) | |
| Suppress default. | |
| DaqEventConverter & | operator= (const DaqEventConverter &rhs) |
| Suppress default. | |
| DayaBay::ReadoutHeader * | createReadoutHeader (const DybDaq::EventReadout &event) |
| Creates a new ReadoutHeader from the supplied context. | |
Classes | |
| class | Address |
| Implementation of IOpaqueAddress interface for this class. More... | |
Definition at line 27 of file DaqEventConverter.h.
| DaqEventConverter::DaqEventConverter | ( | unsigned char | storageType, | |
| const CLID & | clid, | |||
| ISvcLocator * | svc | |||
| ) |
Creates an instance of this class.
Definition at line 62 of file DaqEventConverter.cc.
00064 : 00065 Converter(storageType, 00066 clid, 00067 svc) { 00068 }
| DaqEventConverter::DaqEventConverter | ( | ISvcLocator * | svc | ) |
Creates an instance of this class.
Definition at line 70 of file DaqEventConverter.cc.
00070 : 00071 Converter(storageType(), 00072 classID(), 00073 svc) { 00074 }
| DaqEventConverter::~DaqEventConverter | ( | ) |
| DybDaq::DaqEventConverter::DaqEventConverter | ( | ) | [private] |
Suppress default.
| DybDaq::DaqEventConverter::DaqEventConverter | ( | const DaqEventConverter & | rhs | ) | [private] |
Suppress default.
| const long DaqEventConverter::storageType | ( | ) | [static] |
Required by converter factory.
Definition at line 79 of file DaqEventConverter.cc.
00079 { 00080 return DaqFormatConversionSvc::DAQ_FORMAT_DATA; 00081 }
| const CLID & DaqEventConverter::classID | ( | ) | [static] |
Required by converter factory.
Definition at line 83 of file DaqEventConverter.cc.
00083 { 00084 return DayaBay::CLID_ReadoutHeader; 00085 }
| StatusCode DaqEventConverter::createObj | ( | IOpaqueAddress * | addr, | |
| DataObject *& | pObject | |||
| ) | [virtual] |
Create DataObject based on the supplied IOpaqueAddress.
Reimplemented from Converter.
Definition at line 87 of file DaqEventConverter.cc.
00088 { 00089 Address* address = dynamic_cast<Address*>(addr); 00090 if (0 == address) { 00091 return StatusCode::FAILURE; 00092 } 00093 const EventReadout* eventReadout = address->context().event(); 00094 if (0 == eventReadout) { 00095 return StatusCode::FAILURE; 00096 } 00097 pObject = createReadoutHeader(*eventReadout); 00098 if (0 == pObject) { 00099 return StatusCode::FAILURE; 00100 } 00101 return StatusCode::SUCCESS; 00102 00103 }
| long DaqEventConverter::repSvcType | ( | ) | const [virtual] |
Bookkeepting method used by ConverterSvc class.
Implements Converter.
Definition at line 161 of file DaqEventConverter.cc.
00161 { 00162 return i_repSvcType(); 00163 }
| DaqEventConverter& DybDaq::DaqEventConverter::operator= | ( | const DaqEventConverter & | rhs | ) | [private] |
Suppress default.
| ReadoutHeader * DaqEventConverter::createReadoutHeader | ( | const DybDaq::EventReadout & | event | ) | [private] |
Creates a new ReadoutHeader from the supplied context.
Definition at line 105 of file DaqEventConverter.cc.
00105 { 00106 00107 const EventHeader& header = event.header(); 00108 const EventTraits& traits = header.eventTraits(); 00109 const unsigned int kFeeModuleType = traits.moduleType(EventTraits::kFeeModule); 00110 const unsigned int kRpcRomModuleType = traits.moduleType(EventTraits::kRpcRomModule); 00111 00112 const EventReadout::RomFragmentPtrList& fragments = event.romFragments(); 00113 EventReadout::RomFragmentPtrList::const_iterator fragment = fragments.begin(); 00114 const unsigned int* crateType = 0; 00115 while(0 == crateType && fragment != fragments.end()) { 00116 if (kFeeModuleType == ((*fragment)->header().moduleType())) { 00117 crateType = &kFeeModuleType; 00118 } 00119 else if ( kRpcRomModuleType == ((*fragment)->header().moduleType())) { 00120 crateType = &kRpcRomModuleType; 00121 } 00122 ++fragment; 00123 } 00124 if (0 == crateType) { 00125 return 0; 00126 } 00127 00128 if ((*crateType) == kFeeModuleType) { 00129 const DaqPmtCrate* pmtCrate = new DaqPmtCrate(&event); 00130 const Detector& detector = pmtCrate->detector(); 00131 const TimeStamp& triggerTime = pmtCrate->triggerTime(); 00132 Context context(detector.site(), 00133 SimFlag::kData, 00134 triggerTime, 00135 detector.detectorId()); 00136 ReadoutHeader* result = new ReadoutHeader(); 00137 result->setContext(context); 00138 result->setEarliest(triggerTime); 00139 result->setLatest(triggerTime); 00140 00141 // Add the readout to the header 00142 result->setDaqCrate(const_cast<DaqPmtCrate*>(pmtCrate)); 00143 00144 return result; 00145 } 00146 else if ((*crateType) == kRpcRomModuleType) { 00147 // FIXME : to set the Context of ReadoutHeader 00148 ReadoutHeader* result = new ReadoutHeader(); 00149 Readout* readout = new Readout(); 00150 readout->setEventReadout(const_cast<EventReadout*>(&event)); 00151 result->setReadout(readout); 00152 return result; 00153 } 00154 00155 MsgStream log(msgSvc(), 00156 "DaqEventConverter"); 00157 log << MSG::ERROR << "Could not determine crate type so, cannot make readout." << endreq; 00158 return 0; 00159 }
1.4.7