/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef FILEREADOUTFORMAT_FILENAMESTRINGS_H 00002 #define FILEREADOUTFORMAT_FILENAMESTRINGS_H 00003 00004 /* 00005 * FileNameStrings.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 <string> 00013 00014 #include "FileReadoutFormat/FileBuffer.h" 00015 00016 namespace DybDaq { 00017 00018 class FileNameStrings : public FileBuffer { 00019 00020 public: 00021 00022 FileNameStrings(const std::string application, 00023 const std::string fileBase, 00024 const FileTraits& traits); 00025 00029 FileNameStrings(const ByteBuffer& byteBuffer, 00030 const FileTraits& traits); 00031 00035 virtual ~FileNameStrings(); 00036 00040 virtual bool isMarked(unsigned int marker) const; 00041 00045 std::string application() const; 00046 00050 std::string fileBase() const; 00051 00056 virtual unsigned int gather(OutputBufferList& outputBuffers) const; 00057 00058 protected: 00059 00063 virtual unsigned int formatComponent() const; 00064 00065 private: 00066 00070 FileNameStrings(); 00071 00075 FileNameStrings(FileNameStrings& rhs); 00076 00080 FileNameStrings& operator=(FileNameStrings& rhs); 00081 00085 void setNameStrings(const std::string application, 00086 const std::string fileBase); 00087 00091 static std::string readString(const char* buffer); 00092 00096 static unsigned int calculateStringsLength(const std::string application, 00097 const std::string fileBase); 00098 00102 static unsigned int writeString(const std::string& value, 00103 char* buffer); 00104 00105 mutable const std::string* m_application; 00106 00107 mutable const std::string* m_fileBase; 00108 00112 char* m_stringBuffer; 00113 00114 unsigned int firstLength() const; 00115 }; 00116 00117 } 00118 00119 #endif // FILEREADOUTFORMAT_FILENAMESTRINGS_H 00120