using namespace std;
#include "hldremotesource.h"
#include "hldremotevt.h"
#include "hrecevent.h"
#include "hruntimedb.h"
#include "hldevt.h"
#include "hldsubevt.h"
#include "hldunpack.h"
#include <iostream>
#include <iomanip>
ClassImp(HldRemoteSource)
HldRemoteSource::HldRemoteSource(void): HldSource() {
refId=-1;
}
HldRemoteSource::HldRemoteSource(const Text_t *nodeName): HldSource(){
fReadEvent=new HldRemotEvt(nodeName);
currNodeName=nodeName;
iter=0;
iter=fUnpackerList->MakeIterator();
isDumped=kFALSE;
refId=-1;
}
HldRemoteSource::~HldRemoteSource(void) {
if (fUnpackerList) fUnpackerList->Delete();
fUnpackerList=0;
if (fReadEvent) delete fReadEvent;
fReadEvent=0;
if(iter) delete iter;
}
Bool_t HldRemoteSource::init(void) {
if (!(*fEventAddr)) {
(*fEventAddr) = new HRecEvent;
}
if(isDumped || isScanned) return kTRUE;
iter=fUnpackerList->MakeIterator();
if (initUnpacker()==kFALSE) {
printf(" problem init unpacker \n");
return kFALSE;
}
HldUnpack* unpacker;
while ( (unpacker=(HldUnpack *)iter->Next())!=NULL) {
fReadEvent->appendSubEvtIdx(*unpacker);
}
return kTRUE;
}
Int_t HldRemoteSource::getCurrentRunId(void) {
((HldRemotEvt*)fReadEvent)->read();
return fReadEvent->getRunNr();
}
EDsState HldRemoteSource::getNextEvent(Bool_t doUnpack) {
if(isDumped) return dumpEvt();
if(isScanned) return scanEvt();
iter->Reset();
HldUnpack *unpacker;
if (!fReadEvent) return kDsError;
if (fReadEvent) fReadEvent->execute();
if(doUnpack){
decodeHeader((*fEventAddr)->getHeader());
while ( (unpacker=(HldUnpack *)iter->Next())!=NULL) {
Int_t ret=unpacker->execute();
if(!ret) return kDsError;
if(ret==kDsSkip) return kDsSkip;
}
}
return kDsOk;
}
Last change: Sat May 22 13:17:59 2010
Last generated: 2010-05-22 13:17
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.