00001 #ifndef FILEREADOUTFORMAT_DAQFROMOSTREAM_H 00002 #define FILEREADOUTFORMAT_DAQFROMOSTREAM_H 00003 00004 /* 00005 * DaqFromIStream.h 00006 * FileReadoutFormat 00007 * 00008 * Created by Simon Patton on 7/18/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 00013 #include <fstream> 00014 00015 namespace DybDaq { 00016 class ByteBuffer; 00017 class FileBuffer; 00018 class DaqFormatFromBytes; 00019 } 00020 00021 namespace DybDaq { 00022 00023 class DaqFromIStream { 00024 00025 public: 00026 00030 DaqFromIStream(); 00031 00035 virtual ~DaqFromIStream(); 00036 00040 bool close(); 00041 00046 const FileBuffer* nextRecord(); 00047 00048 protected: 00049 00053 virtual void closeStream(std::istream& stream) = 0; 00054 00058 bool hasIStream() const; 00059 00063 bool open(); 00064 00068 virtual std::istream* openStream() = 0; 00069 00070 private: 00071 00075 DaqFromIStream(DaqFromIStream& rhs); 00076 00080 DaqFromIStream& operator=(DaqFromIStream& rhs); 00081 00085 std::istream* m_istream; 00086 00090 DybDaq::DaqFormatFromBytes* m_daqFromBytes; 00091 00092 }; 00093 00094 } 00095 00096 #endif // FILEREADOUTFORMAT_DAQFROMOSTREAM_H