ByteStreamDataWriterV5 Node1 ByteStreamDataWriterV5 + ByteStreamDataWriterV5() + ByteStreamDataWriterV5() + ~ByteStreamDataWriterV5() + ByteStreamDataWriterV5() + operator=() + putData() + good() Node2 ByteStreamDataWriter + ByteStreamDataWriter() + ~ByteStreamDataWriter() + ByteStreamDataWriter() + operator=() + putData() + good() + makeWriter() + makeWriter() + makeWriter() Node2->Node1 Node3 std::unique_ptr< offline _EventStorage_v5::DataWriter > + operator->() Node3->Node1 -m_writer Node4 offline_EventStorage _v5::DataWriter - m_cFileOpen - m_openFailed - m_lumiBlockNumber - m_compression - m_complevel - m_cFileMB - m_check - m_latestPosition - m_callBack - m_filenamecallback + DataWriter() + DataWriter() + DataWriter() + ~DataWriter() + setMaxFileNE() + setMaxFileMB() + setGUID() + good() + cd() + inTransition() and 17 more... - DataWriter() - initDW() - putData_implementation() - date_timeAsInt() - openNextFile() - fileExists() - setRunParamsRecord() - file_record() - file_record() - file_record() - getAppName() - getElement() - getFileSize() - spaceForGuid() - replaceGuid() Node4->Node3 +ptr Node5 boost::noncopyable Node5->Node4 Node6 offline_EventStorage _v5::file_name_strings Node6->Node4 -m_file_name_strings Node7 std::string Node7->Node4 -m_project -m_nextWritePath -m_stream -m_fileNameCore -m_writePath -m_applicationName -m_next_guid -m_guid -m_streamName -m_streamType ... Node7->Node6 +fileNameCore +appName Node9 offline_EventStorage _v5::file_start_record + marker + record_size + version + file_number + date + time + sizeLimit_dataBlocks + sizeLimit_MB Node9->Node4 -m_file_start_record Node10 std::fstream Node10->Node4 -m_cFile Node17 offline_EventStorage _v5::DataBuffer + DataBuffer() + DataBuffer() + ~DataBuffer() + realloc() + grow() + handle() + buffersize() - DataBuffer() - operator=() Node17->Node4 -m_compressed