00001 #ifndef FILEREADOUTFORMAT_DAQTOSTRSTREAM_H 00002 #define FILEREADOUTFORMAT_DAQTOSTRSTREAM_H 00003 00004 /* 00005 * DaqToStrStream.h 00006 * FileReadoutFormat 00007 * 00008 * Created by Simon Patton on 7/18/10. 00009 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00010 * 00011 */ 00012 #include <sstream> 00013 #include <string> 00014 00015 #include "FileReadoutFormat/FileTraits.h" 00016 00017 #include "FileReadoutFormat/DaqToOStream.h" 00018 00019 namespace DybDaq { 00020 00021 class DaqToStrStream : public DaqToOStream { 00022 00023 public: 00024 00028 DaqToStrStream(const FileTraits& traits); 00029 00033 virtual ~DaqToStrStream(); 00034 00038 void eventSaved(unsigned int bytesSaved); 00039 00043 unsigned int getFileBlockCount() const; 00044 00048 std::string str() const; 00049 00053 void splitStream(); 00054 00055 protected: 00056 00060 virtual std::ostream* openStream(); 00061 00065 virtual void prepareNext(); 00066 00070 virtual void closeStream(std::ostream& stream); 00071 00072 private: 00073 00077 DaqToStrStream(); 00078 00082 DaqToStrStream(DaqToStrStream& rhs); 00083 00087 DaqToStrStream& operator=(DaqToStrStream& rhs); 00088 00092 std::ostringstream* m_stringStream; 00093 00097 std::string* m_lastString; 00098 }; 00099 00100 } 00101 00102 #endif // FILEREADOUTFORMAT_DAQTOSTRSTREAM_H