RawDataZddEventCnv Class Reference

#include <RawDataZddEventCnv.h>

Inheritance diagram for RawDataZddEventCnv:

RawDataBaseCnv Converter< Ty1, Ty2 > List of all members.

Public Types

typedef Ty1 source
typedef Ty2 destination

Public Member Functions

StatusCode initialize ()
virtual long repSvcType () const
StatusCode createObj (IOpaqueAddress *pAddr, DataObject *&pObj)
virtual StatusCode updateObj (IOpaqueAddress *, DataObject *)
 override the RawDataBaseCnv version
virtual StatusCode createRep (DataObject *pObj, IOpaqueAddress *&pAddr)
 Convert the transient object to the requested representation.
virtual StatusCode finalize ()
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &bank, long par=0)
 Store TDS path to link a particular converter to an object on the TDS.
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the converted representation of a transient object.
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the references of an already converted object.
destinationoperator (const source &) const

Static Public Member Functions

static const CLID & classID ()
static const unsigned char storageType ()

Protected Member Functions

 RawDataZddEventCnv (ISvcLocator *svc)
virtual ~RawDataZddEventCnv ()
virtual destinationconvert (const source &) const =0

Protected Attributes

IRawDataCnvSvcm_CnvSvc
 Pointer to event conversion service interface.
std::vector< IRawDataCnvSvc::Leafm_leaves
 Leaf objects giving the locations of the objects in the data store.

Private Attributes

IRawDataInputSvcm_inputSvc
ZddConverterm_cnv
 Define the interface to raw data cnv.

Friends

class CnvFactory< RawDataZddEventCnv >

Detailed Description

Definition at line 14 of file RawDataZddEventCnv.h.


Member Typedef Documentation

template<class Ty1, class Ty2>
typedef Ty2 Converter< Ty1, Ty2 >::destination [inherited]

Definition at line 19 of file Converter.h.

template<class Ty1, class Ty2>
typedef Ty1 Converter< Ty1, Ty2 >::source [inherited]

Definition at line 18 of file Converter.h.


Constructor & Destructor Documentation

RawDataZddEventCnv::RawDataZddEventCnv ( ISvcLocator *  svc  )  [protected]

Definition at line 12 of file RawDataZddEventCnv.cxx.

00013     : RawDataBaseCnv(PACKEDRAWEVENT_StorageType, classID(), svc)
00014 {
00015 }

RawDataZddEventCnv::~RawDataZddEventCnv (  )  [protected, virtual]

Definition at line 17 of file RawDataZddEventCnv.cxx.

References ZddConverter::destroy().

00018 {
00019     ZddConverter::destroy();
00020 }


Member Function Documentation

const CLID & RawDataZddEventCnv::classID (  )  [static]

Reimplemented from RawDataBaseCnv.

Definition at line 53 of file RawDataZddEventCnv.cxx.

References CLID_ZddEvent.

Referenced by PackedRawDataCnvSvc::addConverters().

00054 {
00055     return CLID_ZddEvent;
00056 }

template<class Ty1, class Ty2>
virtual destination* Converter< Ty1, Ty2 >::convert ( const source  )  const [protected, pure virtual, inherited]

StatusCode RawDataZddEventCnv::createObj ( IOpaqueAddress *  pAddr,
DataObject *&  pObj 
)

Definition at line 58 of file RawDataZddEventCnv.cxx.

References BufferHolder::bufSize(), ZddConverter::convert(), IRawDataInputSvc::currentEvent(), RAWEVENT::getZddBuf(), genRecEmupikp::i, m_cnv, m_inputSvc, and BufferHolder::nBuf().

00059 {
00060     ZddEvent*  zddEvt = new ZddEvent;
00061     pObj = zddEvt;
00062 
00063     RAWEVENT* evt = m_inputSvc->currentEvent(); 
00064     if (evt == NULL) {
00065         //log << MSG::ERROR << "RawDataZddEventCnv::createObj has no event!" << endreq; 
00066         return StatusCode::FAILURE;
00067     }
00068 
00069     const BufferHolder& zddBuf = evt->getZddBuf();
00070 
00071     // Data decoding
00072     uint32_t nbuf = zddBuf.nBuf();
00073     for ( uint32_t i = 0; i < nbuf; ++i ) {  //loop the buffers
00074         uint32_t* buf = zddBuf(i);
00075         m_cnv->convert(buf, zddBuf.bufSize(i), zddEvt);
00076     }
00077 
00078     return StatusCode::SUCCESS;
00079 }

StatusCode RawDataZddEventCnv::createRep ( DataObject *  pObj,
IOpaqueAddress *&  pAddr 
) [virtual]

Convert the transient object to the requested representation.

Reimplemented from RawDataBaseCnv.

Definition at line 86 of file RawDataZddEventCnv.cxx.

00087 {
00088     // to be filled
00089     return StatusCode::SUCCESS;
00090 }

void RawDataBaseCnv::declareObject ( const std::string fullPath,
const CLID &  clid,
const std::string bank,
long  par = 0 
) [inherited]

Store TDS path to link a particular converter to an object on the TDS.

Definition at line 81 of file RawDataBaseCnv.cxx.

00082                                                                       {
00083     // Purpose and Method:  Save the path on the TDS, in the m_leaves vector, 
00084     //   corresponding to the DataObject that the converter handles.
00085     // m_leaves.push_back(IRawDataCnvSvc::Leaf(path, cl, bank, par));
00086 }

StatusCode RawDataBaseCnv::fillRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Resolve the references of the converted object.

Definition at line 29 of file RawDataBaseCnv.cxx.

00030                                                  {
00031     // Purpose and Method:  Resolve the references of the converted object.
00032     //     It is expected that derived classes will override this method.
00033     return StatusCode::SUCCESS;
00034 }

StatusCode RawDataBaseCnv::finalize (  )  [virtual, inherited]

Definition at line 73 of file RawDataBaseCnv.cxx.

References RawDataBaseCnv::m_CnvSvc.

00073                                       {
00074     if ( m_CnvSvc )     {
00075         m_CnvSvc->release();
00076         m_CnvSvc = 0;
00077     }
00078     return Converter::finalize();
00079 }

StatusCode RawDataZddEventCnv::initialize (  ) 

Reimplemented from RawDataBaseCnv.

Definition at line 22 of file RawDataZddEventCnv.cxx.

References RawDataBaseCnv::initialize(), ZddConverter::instance(), m_cnv, m_inputSvc, IRawDataInputSvc::runMode(), deljobs::string, and Bes_Common::WARNING.

00023 {
00024     StatusCode sc = RawDataBaseCnv::initialize();
00025     if ( sc.isFailure() ) return sc;
00026 
00027     std::string PackedRawDataCnvSvc_Name("PackedRawDataCnvSvc");
00028     std::string RawDataInputSvc_Name("RawDataInputSvc");
00029     std::string RawDataZddEventCnv_Name("RawDataZddEventCnv");
00030 
00031     SmartIF<IService> pCnvSvc(conversionSvc());   
00032     if  (isGaudiThreaded(pCnvSvc->name())){
00033         PackedRawDataCnvSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name());
00034         RawDataInputSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name());
00035         RawDataZddEventCnv_Name += getGaudiThreadIDfromName(pCnvSvc->name());
00036     }
00037 
00038     MsgStream log(messageService(), RawDataZddEventCnv_Name.c_str());
00039 
00040     IService* svc ;
00041     sc = serviceLocator()->getService(RawDataInputSvc_Name.c_str(), svc);
00042     m_inputSvc = dynamic_cast<RawDataInputSvc*> (svc);
00043     if ( m_inputSvc == 0 ) {
00044         log<<MSG::WARNING<< " Cant cast to  RawDataInputSvc " <<endreq;
00045         return StatusCode::FAILURE ;
00046     }
00047 
00048     m_cnv = ZddConverter::instance( m_inputSvc->runMode() );
00049 
00050     return StatusCode::SUCCESS; 
00051 }

template<class Ty1, class Ty2>
destination* Converter< Ty1, Ty2 >::operator ( const source  )  const [inline, inherited]

virtual long RawDataZddEventCnv::repSvcType (  )  const [inline, virtual]

Reimplemented from RawDataBaseCnv.

Definition at line 28 of file RawDataZddEventCnv.h.

References PACKEDRAWEVENT_StorageType.

00028                                         {
00029             return PACKEDRAWEVENT_StorageType;
00030         }

static const unsigned char RawDataZddEventCnv::storageType (  )  [inline, static]

Reimplemented from RawDataBaseCnv.

Definition at line 32 of file RawDataZddEventCnv.h.

References PACKEDRAWEVENT_StorageType.

00032                                                  {
00033             return PACKEDRAWEVENT_StorageType;
00034         }

StatusCode RawDataZddEventCnv::updateObj ( IOpaqueAddress *  ,
DataObject *   
) [virtual]

override the RawDataBaseCnv version

Definition at line 81 of file RawDataZddEventCnv.cxx.

00082 {
00083     return Converter::updateObj(pAddr, pObj);
00084 }

StatusCode RawDataBaseCnv::updateRep ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Update the converted representation of a transient object.

Definition at line 36 of file RawDataBaseCnv.cxx.

00037                                               {
00038     // Purpose and Method:  Update the converted representation of a transient 
00039     //     object.  It is expected that derived classes will override this.
00040     return StatusCode::SUCCESS;
00041 }

StatusCode RawDataBaseCnv::updateRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Update the references of an already converted object.

Definition at line 43 of file RawDataBaseCnv.cxx.

00044                                                 {
00045     // Purpose and Method:  Update the references of an already converted object.
00046     //   It is expected that derived classes will override this method.
00047     return StatusCode::SUCCESS;
00048 }


Friends And Related Function Documentation

friend class CnvFactory< RawDataZddEventCnv > [friend]

Definition at line 51 of file RawDataZddEventCnv.h.


Member Data Documentation

ZddConverter* RawDataZddEventCnv::m_cnv [private]

Define the interface to raw data cnv.

Definition at line 50 of file RawDataZddEventCnv.h.

Referenced by createObj(), and initialize().

IRawDataCnvSvc* RawDataBaseCnv::m_CnvSvc [protected, inherited]

Pointer to event conversion service interface.

Definition at line 28 of file RawDataBaseCnv.h.

Referenced by RawDataBaseCnv::finalize().

IRawDataInputSvc* RawDataZddEventCnv::m_inputSvc [private]

Definition at line 46 of file RawDataZddEventCnv.h.

Referenced by createObj(), and initialize().

std::vector<IRawDataCnvSvc::Leaf> RawDataBaseCnv::m_leaves [protected, inherited]

Leaf objects giving the locations of the objects in the data store.

Definition at line 30 of file RawDataBaseCnv.h.


Generated on Tue Nov 29 23:20:47 2016 for BOSS_7.0.2 by  doxygen 1.4.7