00001 /* 00002 * DaqToStrStream.cc 00003 * FileReadoutFormat 00004 * 00005 * Created by Simon Patton on 7/18/10. 00006 * Copyright 2010 DayaBay Collaboration. All rights reserved. 00007 * 00008 */ 00009 #include "FileReadoutFormat/DaqToStrStream.h" 00010 00011 #include "DaqReadoutFormat/DaqBuffer.h" 00012 #include "FileReadoutFormat/FileEndRecord.h" 00013 #include "FileReadoutFormat/FileStartRecord.h" 00014 #include "FileReadoutFormat/FileTraits.h" 00015 00016 using DybDaq::DaqToOStream; 00017 using DybDaq::FileEndRecord; 00018 using DybDaq::FileStartRecord; 00019 using DybDaq::FileTraits; 00020 using DybDaq::DaqToStrStream; 00021 using std::ostream; 00022 using std::ostringstream; 00023 using std::string; 00024 00025 DaqToStrStream::DaqToStrStream(const FileTraits& traits) : 00026 DaqToOStream(traits), 00027 m_stringStream(0), 00028 m_lastString(0) { 00029 } 00030 00031 DaqToStrStream::~DaqToStrStream() { 00032 // deleting m_stringStream taken care by superclass. 00033 if (0 != m_lastString) { 00034 delete m_lastString; 00035 } 00036 } 00037 00038 void DaqToStrStream::prepareNext() { 00039 } 00040 00041 ostream* DaqToStrStream::openStream() { 00042 if (0 != m_lastString) { 00043 delete m_lastString; 00044 m_lastString = 0; 00045 } 00046 m_stringStream = new ostringstream(); 00047 return m_stringStream; 00048 } 00049 00050 void DaqToStrStream::closeStream(std::ostream& /* stream */) { 00051 m_lastString = new string(m_stringStream->str()); 00052 // deleting m_stringStream taken care by superclass. 00053 m_stringStream = 0; 00054 } 00055 00056 void DaqToStrStream::eventSaved(unsigned int bytesSaved) { 00057 DaqToOStream::eventSaved(bytesSaved); 00058 } 00059 00060 unsigned int DaqToStrStream::getFileBlockCount() const { 00061 return DaqToOStream::getFileBlockCount(); 00062 } 00063 00064 string DaqToStrStream::str() const { 00065 if (0 != m_stringStream) { 00066 return m_stringStream->str(); 00067 } 00068 return *m_lastString; 00069 } 00070 00071 void DaqToStrStream::splitStream() { 00072 return DaqToOStream::splitStream(); 00073 }