9#include "EventStorage/DataWriter.h"
13void versionException(
int version) {
14 std::string
msg =
"Unexpected version number in ByteStreamDataWriter::makeWriter: " +
15 std::to_string(version);
16 throw std::invalid_argument(
msg);
25 ByteStreamDataWriterCurrent(
const std::string& writingPath,
26 const std::string& fileNameCore,
27 const EventStorage::run_parameters_record& rPar,
28 const std::vector<std::string>& fmdStrings,
29 unsigned int maxFileNE,
30 unsigned int maxFileMB,
31 unsigned int startIndex,
32 EventStorage::CompressionType compression,
33 unsigned int compLevel);
35 ByteStreamDataWriterCurrent(
const std::string& writingPath,
36 boost::shared_ptr<EventStorage::FileNameCallback> theFNCB,
37 const EventStorage::run_parameters_record& rPar,
39 const std::string& streamType,
40 const std::string& streamName,
41 const std::string& stream,
42 unsigned int lumiBlockNumber,
43 const std::string& applicationName,
44 const std::vector<std::string>& fmdStrings,
45 unsigned int maxFileNE,
46 unsigned int maxFileMB,
47 EventStorage::CompressionType compression,
48 unsigned int compLevel);
50 virtual ~ByteStreamDataWriterCurrent() =
default;
53 ByteStreamDataWriterCurrent(
const ByteStreamDataWriterCurrent&) =
delete;
54 ByteStreamDataWriterCurrent& operator=(
const ByteStreamDataWriterCurrent&) =
delete;
56 virtual EventStorage::DWError putData(
unsigned int dataSize,
const void *
data)
override;
58 virtual bool good()
const override;
62 std::unique_ptr<EventStorage::DataWriter> m_writer;
67std::unique_ptr<ByteStreamDataWriter>
69 const std::string& writingPath,
70 const std::string& fileNameCore,
71 const EventStorage::run_parameters_record& rPar,
72 const std::vector<std::string>& fmdStrings,
73 unsigned int maxFileNE,
74 unsigned int maxFileMB,
75 unsigned int startIndex,
76 EventStorage::CompressionType compression,
77 unsigned int compLevel)
80 if (version == 0 or version == FILE_FORMAT_VERSION) {
82 res =
new ByteStreamDataWriterCurrent(writingPath,
93 versionException(version);
96 return std::unique_ptr<ByteStreamDataWriter>(
res);
99std::unique_ptr<ByteStreamDataWriter>
101 const std::string& writingPath,
102 boost::shared_ptr<EventStorage::FileNameCallback> theFNCB,
103 const EventStorage::run_parameters_record& rPar,
105 const std::string& streamType,
106 const std::string& streamName,
107 const std::string& stream,
108 unsigned int lumiBlockNumber,
109 const std::string& applicationName,
110 const std::vector<std::string>& fmdStrings,
111 unsigned int maxFileNE,
112 unsigned int maxFileMB,
113 EventStorage::CompressionType compression,
114 unsigned int compLevel)
117 if (version == 0 or version == FILE_FORMAT_VERSION) {
119 res =
new ByteStreamDataWriterCurrent(writingPath,
135 versionException(version);
138 return std::unique_ptr<ByteStreamDataWriter>(
res);
141std::unique_ptr<ByteStreamDataWriter>
144 if (parameters.theFNCB ==
nullptr)
147 parameters.writingPath,
148 parameters.fileNameCore,
150 parameters.fmdStrings,
151 parameters.maxFileNE,
152 parameters.maxFileMB,
153 parameters.startIndex,
154 parameters.compression,
155 parameters.compLevel);
160 parameters.writingPath,
164 parameters.streamType,
165 parameters.streamName,
167 parameters.lumiBlockNumber,
168 parameters.applicationName,
169 parameters.fmdStrings,
170 parameters.maxFileNE,
171 parameters.maxFileMB,
172 parameters.compression,
173 parameters.compLevel);
178ByteStreamDataWriterCurrent::ByteStreamDataWriterCurrent(
const std::string& writingPath,
179 const std::string& fileNameCore,
180 const EventStorage::run_parameters_record& rPar,
181 const std::vector<std::string>& fmdStrings,
182 unsigned int maxFileNE,
183 unsigned int maxFileMB,
184 unsigned int startIndex,
185 EventStorage::CompressionType compression,
186 unsigned int compLevel)
188 m_writer.reset(
new EventStorage::DataWriter(writingPath,
195 m_writer->setMaxFileNE(maxFileNE);
196 m_writer->setMaxFileMB(maxFileMB);
199ByteStreamDataWriterCurrent::ByteStreamDataWriterCurrent(
const std::string& writingPath,
200 boost::shared_ptr<EventStorage::FileNameCallback> theFNCB,
201 const EventStorage::run_parameters_record& rPar,
203 const std::string& streamType,
204 const std::string& streamName,
205 const std::string& stream,
206 unsigned int lumiBlockNumber,
207 const std::string& applicationName,
208 const std::vector<std::string>& fmdStrings,
209 unsigned int maxFileNE,
210 unsigned int maxFileMB,
211 EventStorage::CompressionType compression,
212 unsigned int compLevel)
214 m_writer.reset(
new EventStorage::DataWriter(writingPath,
226 m_writer->setMaxFileNE(maxFileNE);
227 m_writer->setMaxFileMB(maxFileMB);
231ByteStreamDataWriterCurrent::putData(
unsigned int dataSize,
const void *
data)
233 return m_writer->putData(dataSize,
data);
237ByteStreamDataWriterCurrent::good()
const
239 return m_writer->good();
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)
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.