#include "hldsockremotesource.h"
#include "hldsockremotevt.h"
#include "hrecevent.h"
#include "hruntimedb.h"
#include "hldevt.h"
#include "hldsubevt.h"
#include "hldunpack.h"  
#include "hades.h"
#include <iostream> 
ClassImp(HldSockRemoteSource)
HldSockRemoteSource::HldSockRemoteSource(void): HldSource() {
	refId=-1;
}
HldSockRemoteSource::HldSockRemoteSource(const Text_t *nodeName,Int_t evtMax): HldSource(){
   fReadEvent=new HldSockRemotEvt(nodeName,0,evtMax,0);
   currNodeName=nodeName;
   iter=0;
   iter=fUnpackerList->MakeIterator();
  isDumped=kFALSE;   
}
HldSockRemoteSource::~HldSockRemoteSource(void) {
  
   if (fUnpackerList) fUnpackerList->Delete();
  fUnpackerList=0;
  if (fReadEvent) delete fReadEvent;
  fReadEvent=0;
  if(iter) delete iter;
}
Bool_t HldSockRemoteSource::init(void) {
  
 if (!(*fEventAddr)) {
   (*fEventAddr) = new HRecEvent;
 }
 if(isDumped) return kTRUE;
 iter=fUnpackerList->MakeIterator();
 if (initUnpacker()==kFALSE) {
      Error("init()","error in initialisation of  unpackers \n");
    return kFALSE;
 }
 HldUnpack* unpacker;
 while ( (unpacker=(HldUnpack *)iter->Next())!=NULL) {
       fReadEvent->appendSubEvtIdx(*unpacker);      
 }  
 return kTRUE;  
}
EDsState HldSockRemoteSource::getNextEvent(Bool_t doUnpack) {
 
if(isDumped) return dumpEvt();
 iter->Reset();
 HldUnpack *unpacker;
 if (!fReadEvent) return kDsError;
  if (fReadEvent) fReadEvent->execute();
  decodeHeader((*fEventAddr)->getHeader());
  while ( (unpacker=(HldUnpack *)iter->Next())!=NULL) {
    if (!unpacker->execute()) return kDsError;
  }
return kDsOk;
}
Int_t HldSockRemoteSource::getCurrentRunId(void) {
  ((HldSockRemotEvt*)fReadEvent)->read();
  return fReadEvent->getRunNr();
}
 hldsockremotesource.cc:10  hldsockremotesource.cc:11  hldsockremotesource.cc:12  hldsockremotesource.cc:13  hldsockremotesource.cc:14  hldsockremotesource.cc:15  hldsockremotesource.cc:16  hldsockremotesource.cc:17  hldsockremotesource.cc:18  hldsockremotesource.cc:19  hldsockremotesource.cc:20  hldsockremotesource.cc:21  hldsockremotesource.cc:22  hldsockremotesource.cc:23  hldsockremotesource.cc:24  hldsockremotesource.cc:25  hldsockremotesource.cc:26  hldsockremotesource.cc:27  hldsockremotesource.cc:28  hldsockremotesource.cc:29  hldsockremotesource.cc:30  hldsockremotesource.cc:31  hldsockremotesource.cc:32  hldsockremotesource.cc:33  hldsockremotesource.cc:34  hldsockremotesource.cc:35  hldsockremotesource.cc:36  hldsockremotesource.cc:37  hldsockremotesource.cc:38  hldsockremotesource.cc:39  hldsockremotesource.cc:40  hldsockremotesource.cc:41  hldsockremotesource.cc:42  hldsockremotesource.cc:43  hldsockremotesource.cc:44  hldsockremotesource.cc:45  hldsockremotesource.cc:46  hldsockremotesource.cc:47  hldsockremotesource.cc:48  hldsockremotesource.cc:49  hldsockremotesource.cc:50  hldsockremotesource.cc:51  hldsockremotesource.cc:52  hldsockremotesource.cc:53  hldsockremotesource.cc:54  hldsockremotesource.cc:55  hldsockremotesource.cc:56  hldsockremotesource.cc:57  hldsockremotesource.cc:58  hldsockremotesource.cc:59  hldsockremotesource.cc:60  hldsockremotesource.cc:61  hldsockremotesource.cc:62  hldsockremotesource.cc:63  hldsockremotesource.cc:64  hldsockremotesource.cc:65  hldsockremotesource.cc:66  hldsockremotesource.cc:67  hldsockremotesource.cc:68  hldsockremotesource.cc:69  hldsockremotesource.cc:70  hldsockremotesource.cc:71  hldsockremotesource.cc:72  hldsockremotesource.cc:73  hldsockremotesource.cc:74  hldsockremotesource.cc:75  hldsockremotesource.cc:76  hldsockremotesource.cc:77  hldsockremotesource.cc:78  hldsockremotesource.cc:79  hldsockremotesource.cc:80  hldsockremotesource.cc:81  hldsockremotesource.cc:82  hldsockremotesource.cc:83  hldsockremotesource.cc:84  hldsockremotesource.cc:85  hldsockremotesource.cc:86  hldsockremotesource.cc:87  hldsockremotesource.cc:88  hldsockremotesource.cc:89  hldsockremotesource.cc:90  hldsockremotesource.cc:91  hldsockremotesource.cc:92  hldsockremotesource.cc:93  hldsockremotesource.cc:94