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

In This Package:

DybDaq::DaqEventConverter Class Reference

#include <DaqEventConverter.h>

Inheritance diagram for DybDaq::DaqEventConverter:

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

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 IDataProviderSvcdataProvider () const
virtual StatusCode setConversionSvc (IConversionSvc *svc)
virtual IConversionSvcconversionSvc () const
virtual StatusCode setAddressCreator (IAddressCreator *creator)
virtual IAddressCreatoraddressCreator () const
virtual const CLIDobjType () 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 CLIDclassID ()
 Required by converter factory.
static const InterfaceIDinterfaceID ()

Public Attributes

 INVALID_ADDRESS
 INVALID_OBJECT
 NO_MEMORY
 BAD_STORAGE_TYPE
 NO_SOURCE_OBJECT
 ICONVERSIONSVC_LAST_ERROR

Protected Member Functions

ISvcLocatorserviceLocator () const
IMessageSvcmsgSvc () const
IMessageSvcmessageService () const
IDataManagerSvcdataManager () const

Private Member Functions

 DaqEventConverter ()
 Suppress default.
 DaqEventConverter (const DaqEventConverter &rhs)
 Suppress default.
DaqEventConverteroperator= (const DaqEventConverter &rhs)
 Suppress default.
DayaBay::ReadoutHeadercreateReadoutHeader (const DybDaq::EventReadout &event)
 Creates a new ReadoutHeader from the supplied context.

Classes

class  Address
 Implementation of IOpaqueAddress interface for this class. More...

Detailed Description

Definition at line 27 of file DaqEventConverter.h.


Constructor & Destructor Documentation

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 (  ) 

Destroys the instance of this class.

Definition at line 76 of file DaqEventConverter.cc.

00076                                       {
00077 }

DybDaq::DaqEventConverter::DaqEventConverter (  )  [private]

Suppress default.

DybDaq::DaqEventConverter::DaqEventConverter ( const DaqEventConverter rhs  )  [private]

Suppress default.


Member Function Documentation

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 }


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:46:30 2011 for DaqFormatModules by doxygen 1.4.7