Gaudi Framework, version v20r4

Generated: 8 Jan 2009

GFALDataStreamTool.h

Go to the documentation of this file.
00001 // $Id: GFALDataStreamTool.h,v 1.1.1.1 2007/01/15 12:22:56 hmd Exp $
00002 #ifndef GAUDIGRIDSVC_GFALDATASTREAMTOOL_H 
00003 #define GAUDIGRIDSVC_GFALDATASTREAMTOOL_H 1
00004 
00005 // Include files
00006 
00007 #include <vector>
00008 
00009 // Local
00010 #include "GFALStageBlock.h"
00011 
00012 // from Gaudi
00013 #include "GaudiKernel/Service.h"
00014 #include "GaudiKernel/IEvtSelector.h"
00015 #include "GaudiKernel/EventSelectorDataStream.h"
00016 #include "GaudiKernel/DataStreamTool.h"
00017 
00018 
00019 
00032 //class DataStreamTool;
00033 
00034 class GFALDataStreamTool : virtual public DataStreamTool {
00035 public: 
00036   
00037   enum Status {UNKNOWN=0,STGING,DONE};
00038   
00040   GFALDataStreamTool( const std::string& type, 
00041                       const std::string& name,
00042                       const IInterface* parent);
00043   
00044   virtual ~GFALDataStreamTool( ); 
00045 
00046   virtual StatusCode initialize();
00047   
00048   virtual StatusCode finalize();
00049   
00050   virtual StatusCode addStreams(const StreamSpecs &);
00051 
00052   virtual StatusCode getNextStream( const EventSelectorDataStream* &, size_type & );
00053   
00054 protected:
00055   
00056   StatusCode updateStreams( const std::string & , const std::string & );
00057   
00058 private:
00059   
00060   size_type m_turlCount;
00061     
00062   StreamSpecs m_streamTurls;
00063   
00064   StatusCode setBlocks();
00065   
00066   StatusCode firstBlockStage();
00067   
00068   StatusCode nextBlockStage();
00069   
00070   StatusCode updateBlockStatus();
00071 
00072   StatusCode updateBlockStatus(GFALStageBlock *);
00073   
00074   StatusCode updateStreamTurls();
00075   
00076   void addBlock(GFALStageBlock *);
00077     
00078   std::vector<GFALStageBlock*> m_blocks ;
00079   
00080   std::vector<GFALStageBlock*>::iterator m_blockitr;
00081   
00082   long int m_pos;
00083       
00084   size_t m_blockindex ;
00086   size_t m_ntotblocks ;
00088   size_t m_blocksize ;
00090   size_t m_initstage ;
00092   size_t m_readfile ;
00094 
00095   int m_atblock ;
00096   
00097   Status m_task;
00098   
00099 };
00100 #endif // GAUDIGRIDSVC_GFALDATASTREAMTOOL_H

Generated at Thu Jan 8 17:44:19 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004