10#include "EventStorage/DataWriter.h"
14void versionException(
int version) {
15 std::string
msg =
"Unexpected version number in ByteStreamDataWriter::makeWriter: " +
16 std::to_string(version);
17 throw std::invalid_argument(
msg);
26 ByteStreamDataWriterCurrent(
const std::string& writingPath,
27 const std::string& fileNameCore,
28 const EventStorage::run_parameters_record& rPar,
29 const std::vector<std::string>& fmdStrings,
30 unsigned int maxFileNE,
31 unsigned int maxFileMB,
32 unsigned int startIndex,
33 EventStorage::CompressionType compression,
34 unsigned int compLevel);
36 ByteStreamDataWriterCurrent(
const std::string& writingPath,
37 boost::shared_ptr<EventStorage::FileNameCallback> theFNCB,
38 const EventStorage::run_parameters_record& rPar,
40 const std::string& streamType,
41 const std::string& streamName,
42 const std::string& stream,
43 unsigned int lumiBlockNumber,
44 const std::string& applicationName,
45 const std::vector<std::string>& fmdStrings,
46 unsigned int maxFileNE,
47 unsigned int maxFileMB,
48 EventStorage::CompressionType compression,
49 unsigned int compLevel);
51 virtual ~ByteStreamDataWriterCurrent() =
default;
54 ByteStreamDataWriterCurrent(
const ByteStreamDataWriterCurrent&) =
delete;
55 ByteStreamDataWriterCurrent& operator=(
const ByteStreamDataWriterCurrent&) =
delete;
57 virtual EventStorage::DWError putData(
unsigned int dataSize,
const void *
data)
override;
59 virtual bool good()
const override;
63 std::unique_ptr<EventStorage::DataWriter> m_writer;
68std::unique_ptr<ByteStreamDataWriter>
70 const std::string& writingPath,
71 const std::string& fileNameCore,
72 const EventStorage::run_parameters_record& rPar,
73 const std::vector<std::string>& fmdStrings,
74 unsigned int maxFileNE,
75 unsigned int maxFileMB,
76 unsigned int startIndex,
77 EventStorage::CompressionType compression,
78 unsigned int compLevel)
81 if (version == 0 or version == FILE_FORMAT_VERSION) {
83 res =
new ByteStreamDataWriterCurrent(writingPath,
92 }
else if (version == 5) {
105 versionException(version);
108 return std::unique_ptr<ByteStreamDataWriter>(
res);
111std::unique_ptr<ByteStreamDataWriter>
113 const std::string& writingPath,
114 boost::shared_ptr<EventStorage::FileNameCallback> theFNCB,
115 const EventStorage::run_parameters_record& rPar,
117 const std::string& streamType,
118 const std::string& streamName,
119 const std::string& stream,
120 unsigned int lumiBlockNumber,
121 const std::string& applicationName,
122 const std::vector<std::string>& fmdStrings,
123 unsigned int maxFileNE,
124 unsigned int maxFileMB,
125 EventStorage::CompressionType compression,
126 unsigned int compLevel)
129 if (version == 0 or version == FILE_FORMAT_VERSION) {
131 res =
new ByteStreamDataWriterCurrent(writingPath,
145 }
else if (version == 5) {
163 versionException(version);
166 return std::unique_ptr<ByteStreamDataWriter>(
res);
169std::unique_ptr<ByteStreamDataWriter>
172 if (parameters.theFNCB ==
nullptr)
175 parameters.writingPath,
176 parameters.fileNameCore,
178 parameters.fmdStrings,
179 parameters.maxFileNE,
180 parameters.maxFileMB,
181 parameters.startIndex,
182 parameters.compression,
183 parameters.compLevel);
188 parameters.writingPath,
192 parameters.streamType,
193 parameters.streamName,
195 parameters.lumiBlockNumber,
196 parameters.applicationName,
197 parameters.fmdStrings,
198 parameters.maxFileNE,
199 parameters.maxFileMB,
200 parameters.compression,
201 parameters.compLevel);
206ByteStreamDataWriterCurrent::ByteStreamDataWriterCurrent(
const std::string& writingPath,
207 const std::string& fileNameCore,
208 const EventStorage::run_parameters_record& rPar,
209 const std::vector<std::string>& fmdStrings,
210 unsigned int maxFileNE,
211 unsigned int maxFileMB,
212 unsigned int startIndex,
213 EventStorage::CompressionType compression,
214 unsigned int compLevel)
216 m_writer.reset(
new EventStorage::DataWriter(writingPath,
223 m_writer->setMaxFileNE(maxFileNE);
224 m_writer->setMaxFileMB(maxFileMB);
227ByteStreamDataWriterCurrent::ByteStreamDataWriterCurrent(
const std::string& writingPath,
228 boost::shared_ptr<EventStorage::FileNameCallback> theFNCB,
229 const EventStorage::run_parameters_record& rPar,
231 const std::string& streamType,
232 const std::string& streamName,
233 const std::string& stream,
234 unsigned int lumiBlockNumber,
235 const std::string& applicationName,
236 const std::vector<std::string>& fmdStrings,
237 unsigned int maxFileNE,
238 unsigned int maxFileMB,
239 EventStorage::CompressionType compression,
240 unsigned int compLevel)
242 m_writer.reset(
new EventStorage::DataWriter(writingPath,
254 m_writer->setMaxFileNE(maxFileNE);
255 m_writer->setMaxFileMB(maxFileMB);
259ByteStreamDataWriterCurrent::putData(
unsigned int dataSize,
const void *
data)
261 return m_writer->putData(dataSize,
data);
265ByteStreamDataWriterCurrent::good()
const
267 return m_writer->good();
This file contains the class definition for the ByteStreamDataWriterV5 class.
This file contains the class definition for the ByteStreamDataWriter class.
char data[hepevt_bytes_allocation_ATLAS]
std::pair< std::vector< unsigned int >, bool > res
T_ResultType project(ParameterMapping::type< N > parameter_map, const T_Matrix &matrix)
Implementation of ByteStreamDataWriter for version 5 (run1) of EventStorage.
This class defines abstract interface for data writing.
static std::unique_ptr< ByteStreamDataWriter > makeWriter(int version, const std::string &writingPath, const std::string &fileNameCore, const EventStorage::run_parameters_record &rPar, const std::vector< std::string > &fmdStrings, unsigned int maxFileNE=0, unsigned int maxFileMB=0, unsigned int startIndex=1, EventStorage::CompressionType compression=EventStorage::NONE, unsigned int compLevel=1)
Factory method returning data writer instance for specified version.
Class containing parameters needed to initiate DataWriter.