00001 // $Id: StTrgDatReader.h,v 1.6 2010/01/25 17:41:53 akio Exp $ 00002 // 00003 // $Log: StTrgDatReader.h,v $ 00004 // Revision 1.6 2010/01/25 17:41:53 akio 00005 // Remove RecordSize, and RecordUnixTime to return 2019686401 (Sat Dec 31 19:00:01 2033) 00006 // 00007 // Revision 1.5 2010/01/15 21:26:51 fine 00008 // RT #1816. Eliminate the side effect from RT 1803 fix 00009 // 00010 // Revision 1.4 2010/01/07 17:37:58 fine 00011 // introduce closeFileSignal to process several DAT files at once. RT # 1794 00012 // 00013 // Revision 1.3 2010/01/06 20:42:26 fine 00014 // Fix type EventNumber shoould be RunNumber . Thanks Akio 00015 // 00016 // Revision 1.2 2010/01/06 20:09:39 fine 00017 // RT #1794. Add EventNumber method to the StStreamFile interface RT # 1794 00018 // 00019 // Revision 1.1 2009/10/13 15:53:31 fine 00020 // Akio\'s DAT file format reader 00021 // 00022 // 00023 00024 /*************************************************************************** 00025 * Author: akio ogawea 00026 * Description: Trigger Data file (run*.*.dat) reader 00027 **************************************************************************/ 00028 00029 #ifndef __StTrgDatReader_h__ 00030 #define __StTrgDatReader_h__ 00031 00032 #include "StStreamFile.h" 00033 00034 class StTrgDatReader : public StStreamFile { 00035 00036 public: 00037 explicit StTrgDatReader(); 00038 explicit StTrgDatReader(const char *fileName, ios_base::openmode mode = ios_base::in); 00039 00040 virtual ~StTrgDatReader(); 00041 00042 public: // implementation of StStreamFile abstract interface 00043 00044 fstream &Read(); 00045 char *Record(); 00046 int Length() const; 00047 int Version() const; 00048 int RunNumber() const; 00049 int RecordUnixTime() const; 00050 00051 protected : 00052 char *Buffer(streamsize n); 00053 virtual bool closeFileSignal(); 00054 00055 private: 00056 00057 int mLength; 00058 int mVersion; 00059 int mRunNumber; 00060 char *mData; 00061 streamsize mAllocated; 00062 static const int mLheader; // the length of the header 00063 }; 00064 #endif
1.5.9