/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Public Member Functions | Static Public Member Functions | Protected Attributes
DaqBlockHeaderCnv Class Reference

#include <DaqBlockHeaderCnv.h>

Inheritance diagram for DaqBlockHeaderCnv:
Inheritance graph
[legend]
Collaboration diagram for DaqBlockHeaderCnv:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 DaqBlockHeaderCnv (ISvcLocator *svc)
 Creates an instance of this class.
virtual ~DaqBlockHeaderCnv ()
 Destroys this instance of the class.
StatusCode PerToTran (const PerDaqBlockHeader &perobj, DayaBay::DaqBlockHeader &tranobj)
 Create transisent instance from persistent.
StatusCode TranToPer (const DayaBay::DaqBlockHeader &tranobj, PerDaqBlockHeader &perobj)
 Create persistent instance from transient.
StatusCode fillRepRefs (IOpaqueAddress *addr, DataObject *dobj)
StatusCode fillObjRefs (IOpaqueAddress *addr, DataObject *dobj)
PerType & getPerInputObject ()
PerType & getPerOutputObject ()
const RootIOBaseObjectgetBaseInputObject ()
const RootIOBaseObjectgetBaseOutputObject ()
virtual StatusCode PerToTran (const PerType &pobj, TranType &tobj)=0
virtual StatusCode TranToPer (const TranType &tobj, PerType &pobj)=0
virtual StatusCode TranObjectToPerObject (DataObject &dat, const RootOutputAddress &)
virtual StatusCode PerObjectToTranObject (DataObject *&dat)
virtual RootInputStreammakeInputStream (const RootInputAddress &ria)
virtual RootOutputStreammakeOutputStream (const RootOutputAddress &ria)
virtual long repSvcType () const
virtual StatusCode initialize ()
virtual StatusCode finalize ()
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
int commit (const RootOutputAddress &roa)
RootIOBaseCnvotherConverter (int clID)

Static Public Member Functions

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

Protected Attributes

std::string m_perclassName
PerType * m_perInObj
PerType * m_perOutObj
IRootIOSvcm_rioSvc
IConversionSvc * m_cnvSvc
RootInputStreamm_ris

Detailed Description

Definition at line 18 of file DaqBlockHeaderCnv.h.


Constructor & Destructor Documentation

DaqBlockHeaderCnv::DaqBlockHeaderCnv ( ISvcLocator *  svc)

Creates an instance of this class.

Definition at line 24 of file DaqBlockHeaderCnv.cc.

                                                     :
    RootIOTypedCnv<PerDaqBlockHeader,DaqBlockHeader>("PerDaqBlockHeader",
                                                     classID(),
                                                     svc) {
}
DaqBlockHeaderCnv::~DaqBlockHeaderCnv ( ) [virtual]

Destroys this instance of the class.

Definition at line 31 of file DaqBlockHeaderCnv.cc.

                                      {
}

Member Function Documentation

static const CLID& DaqBlockHeaderCnv::classID ( ) [inline, static]

Definition at line 23 of file DaqBlockHeaderCnv.h.

                                 {
        return DayaBay::CLID_DaqBlockHeader;
    }
StatusCode DaqBlockHeaderCnv::PerToTran ( const PerDaqBlockHeader perobj,
DayaBay::DaqBlockHeader tranobj 
)

Create transisent instance from persistent.

Definition at line 34 of file DaqBlockHeaderCnv.cc.

                                                                 {
    MsgStream log(msgSvc(), "ReadoutHeaderCnv::PerToTran");
    StatusCode sc = HeaderObjectCnv::toTran(perobj,tranobj);
    if (sc.isFailure()) {
        return sc;
    }

    tranobj.setDeltaEvents(perobj.deltaEvents);
    if(0 == perobj.daqBlock) {
        tranobj.setDaqBlock(0);
        return StatusCode::SUCCESS;
    }

    DaqBlock* daqBlock = const_cast<DaqBlock*>(tranobj.daqBlock());
    if (0 == daqBlock) {
        daqBlock = new DaqBlock();
        tranobj.setDaqBlock(daqBlock);
    }
    DaqBlock::RawData* rawBytes = daqBlock->bytes();
    std::vector<unsigned int>& daqBytes = perobj.daqBlock->rawData;
    if (0 == rawBytes) {
        rawBytes = new DaqBlock::RawData(daqBytes.size());
        daqBlock->setBytes(rawBytes);
    } else {
        rawBytes->resize(daqBytes.size());
    }
    memcpy(&((*(daqBlock->bytes()))[0]),
           &(daqBytes[0]),
           daqBytes.size() * ByteBuffer::BYTES_IN_INT);
    return StatusCode::SUCCESS;
}                                       
StatusCode DaqBlockHeaderCnv::TranToPer ( const DayaBay::DaqBlockHeader tranobj,
PerDaqBlockHeader perobj 
)

Create persistent instance from transient.

Definition at line 67 of file DaqBlockHeaderCnv.cc.

                                                                   {
    MsgStream log(msgSvc(), "DaqBlockHeaderCnv::TranToPer");
    StatusCode sc = HeaderObjectCnv::toPer(tranobj,
                                           perobj);
    if (sc.isFailure()) {
        return sc;
    }

    perobj.deltaEvents = tranobj.deltaEvents();
    const DaqBlock* daqBlock = tranobj.daqBlock();
    if ( 0 == daqBlock) {
        delete perobj.daqBlock;
        perobj.daqBlock = 0;
        return StatusCode::SUCCESS;
    }
    perobj.daqBlock = new PerDaqBlock(daqBlock->size());
    std::vector<unsigned int>& daqBytes = perobj.daqBlock->rawData;
    memcpy(&(daqBytes[0]),
           &((*(daqBlock->bytes()))[0]),
           daqBlock->size() * ByteBuffer::BYTES_IN_INT);
    return StatusCode::SUCCESS;
}
StatusCode DaqBlockHeaderCnv::fillRepRefs ( IOpaqueAddress *  addr,
DataObject *  dobj 
) [virtual]

Reimplemented from RootIOTypedCnv< PerDaqBlockHeader, DayaBay::DaqBlockHeader >.

Definition at line 91 of file DaqBlockHeaderCnv.cc.

                                                                           {
    MsgStream log(msgSvc(), "DaqBlockHeaderCnv::fillRepRefs");
    DaqBlockHeader* rh = dynamic_cast<DaqBlockHeader*>(dobj);

    log << MSG::DEBUG
        << "Saving links to " << rh->inputHeaders().size() 
        << " input headers" << endreq;

    StatusCode sc = HeaderObjectCnv::fillPer(m_rioSvc,*rh,*m_perOutObj);
    if (sc.isFailure()) {
        log << MSG::ERROR << "Failed to fill HeaderObject part" << endreq;
        return sc;
    }

    // ... fill DaqBlockHeader part...
    return sc;
}
StatusCode DaqBlockHeaderCnv::fillObjRefs ( IOpaqueAddress *  addr,
DataObject *  dobj 
) [virtual]

Reimplemented from RootIOTypedCnv< PerDaqBlockHeader, DayaBay::DaqBlockHeader >.

Definition at line 109 of file DaqBlockHeaderCnv.cc.

                                                                           {
    MsgStream log(msgSvc(), "DaqBlockHeaderCnv::fillObjRefs");
    HeaderObject* hobj = dynamic_cast<HeaderObject*>(dobj);
    StatusCode sc = HeaderObjectCnv::fillTran(m_rioSvc,*m_perInObj,*hobj);
    if (sc.isFailure()) {
        log << MSG::ERROR << "Failed to fill HeaderObject part" << endreq;
        return sc;
    }

    log << MSG::DEBUG
        << "Restored links to " << hobj->inputHeaders().size() 
        << " input headers" << endreq;

    // ... fill DaqBlockHeader part...
    return sc;
}
PerType & RootIOTypedCnv< class, class >::getPerInputObject ( ) [inherited]
PerType & RootIOTypedCnv< class, class >::getPerOutputObject ( ) [inherited]
const RootIOBaseObject * RootIOTypedCnv< class, class >::getBaseInputObject ( ) [virtual, inherited]

Implements RootIOBaseCnv.

const RootIOBaseObject * RootIOTypedCnv< class, class >::getBaseOutputObject ( ) [virtual, inherited]

Implements RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< class, class >::PerToTran ( const PerType &  pobj,
TranType &  tobj 
) [pure virtual, inherited]
virtual StatusCode RootIOTypedCnv< class, class >::TranToPer ( const TranType &  tobj,
PerType &  pobj 
) [pure virtual, inherited]
virtual StatusCode RootIOTypedCnv< class, class >::TranObjectToPerObject ( DataObject &  dat,
const RootOutputAddress  
) [virtual, inherited]

Implements RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< class, class >::PerObjectToTranObject ( DataObject *&  dat) [virtual, inherited]

Implements RootIOBaseCnv.

virtual RootInputStream * RootIOTypedCnv< class, class >::makeInputStream ( const RootInputAddress ria) [virtual, inherited]

Implements RootIOBaseCnv.

virtual RootOutputStream * RootIOTypedCnv< class, class >::makeOutputStream ( const RootOutputAddress ria) [virtual, inherited]

Implements RootIOBaseCnv.

virtual long RootIOTypedCnv< class, class >::repSvcType ( ) const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< class, class >::initialize ( ) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< class, class >::finalize ( ) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< class, class >::createObj ( IOpaqueAddress *  addr,
DataObject *&  dat 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< class, class >::createRep ( DataObject *  pObject,
IOpaqueAddress *&  refpAddress 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

int RootIOTypedCnv< class, class >::commit ( const RootOutputAddress roa) [inherited]

Reimplemented from RootIOBaseCnv.

RootIOBaseCnv * RootIOTypedCnv< class, class >::otherConverter ( int  clID) [inherited]

Reimplemented from RootIOBaseCnv.

static unsigned char RootIOTypedCnv< class, class >::storageType ( ) [static, inherited]

Reimplemented from RootIOBaseCnv.

static const InterfaceID & RootIOTypedCnv< class, class >::interfaceID ( ) [static, inherited]

Reimplemented from RootIOBaseCnv.


Member Data Documentation

std::string RootIOTypedCnv< class, class >::m_perclassName [protected, inherited]
PerType * RootIOTypedCnv< class, class >::m_perInObj [protected, inherited]
PerType * RootIOTypedCnv< class, class >::m_perOutObj [protected, inherited]
IRootIOSvc * RootIOTypedCnv< class, class >::m_rioSvc [protected, inherited]

Reimplemented from RootIOBaseCnv.

IConversionSvc * RootIOTypedCnv< class, class >::m_cnvSvc [protected, inherited]

Reimplemented from RootIOBaseCnv.

RootInputStream * RootIOTypedCnv< class, class >::m_ris [protected, inherited]

Reimplemented from RootIOBaseCnv.


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

Generated on Fri May 16 2014 10:00:59 for PerDaqBlock by doxygen 1.7.4