1 #ifndef MHO_BinaryFileStreamer_HH__
2 #define MHO_BinaryFileStreamer_HH__
33 class MHO_BinaryFileStreamer;
47 s.
GetStream().read(
reinterpret_cast< char*
>(&obj),
sizeof(XValueType));
52 const XValueType& obj)
55 s.
GetStream().write(
reinterpret_cast< const char*
>(&obj),
sizeof(XValueType));
114 s.
GetStream().read(
reinterpret_cast< char*
>(&size),
sizeof(uint64_t));
122 const std::string& obj)
124 uint64_t size = obj.size();
125 s.
GetStream().write(
reinterpret_cast< const char*
>(&size),
sizeof(uint64_t));
186 s.
GetStream().read(
reinterpret_cast< char*
>(&size),
sizeof(uint64_t));
187 s.
GetStream().read(
reinterpret_cast< char*
>(&encoding),
sizeof(uint64_t));
188 std::vector< std::uint8_t >
data;
190 s.
GetStream().read(
reinterpret_cast< char*
>(&(
data[0])), size);
195 obj = mho_json::from_cbor(
data);
204 std::vector< std::uint8_t >
data = mho_json::to_cbor(obj);
205 uint64_t size =
data.size();
208 uint64_t encoding = 0;
209 s.
GetStream().write(
reinterpret_cast< const char*
>(&size),
sizeof(uint64_t));
210 s.
GetStream().write(
reinterpret_cast< const char*
>(&encoding),
sizeof(uint64_t));
211 s.
GetStream().write(
reinterpret_cast< const char*
>(&(
data[0])), size);
268 template<
typename XValueType >
276 template<
typename XValueType,
typename... XValueTypeS >
283 unsigned long,
long long,
unsigned long long, float, double,
long double,
284 std::complex< float >, std::complex< double >, std::complex< long double >,
321 virtual void Close()
override;
Class MHO_BinaryFileStreamerMultiType declares a multi-type streamer with a variadic template paramet...
Definition: MHO_BinaryFileStreamer.hh:260
Class MHO_BinaryFileStreamerSingleType<mho_json> specialization for mho_json type (special,...
Definition: MHO_BinaryFileStreamer.hh:176
virtual void ResetByteCount()=0
Resets byte count to zero.
virtual MHO_BinaryFileStreamer & Self()=0
Returns a reference to the current instance of MHO_BinaryFileStreamer.
virtual uint64_t GetNBytesWritten() const =0
Getter for nbytes written.
virtual std::fstream & GetStream()=0
Getter for fstream object.
friend MHO_BinaryFileStreamer & operator<<(MHO_BinaryFileStreamerSingleType< mho_json > &s, const mho_json &obj)
Definition: MHO_BinaryFileStreamer.hh:201
virtual void AddBytesWritten(uint64_t)=0
Increments fNBytesWritten.
MHO_BinaryFileStreamerSingleType()
Definition: MHO_BinaryFileStreamer.hh:178
virtual ~MHO_BinaryFileStreamerSingleType()
Definition: MHO_BinaryFileStreamer.hh:179
friend MHO_BinaryFileStreamer & operator>>(MHO_BinaryFileStreamerSingleType< mho_json > &s, mho_json &obj)
Definition: MHO_BinaryFileStreamer.hh:182
Class MHO_BinaryFileStreamerSingleType<std::string> specialization for string type (special among the...
Definition: MHO_BinaryFileStreamer.hh:105
virtual void ResetByteCount()=0
Resets the byte count to zero.
virtual ~MHO_BinaryFileStreamerSingleType()
Definition: MHO_BinaryFileStreamer.hh:108
friend MHO_BinaryFileStreamer & operator>>(MHO_BinaryFileStreamerSingleType< std::string > &s, std::string &obj)
Definition: MHO_BinaryFileStreamer.hh:111
friend MHO_BinaryFileStreamer & operator<<(MHO_BinaryFileStreamerSingleType< std::string > &s, const std::string &obj)
Definition: MHO_BinaryFileStreamer.hh:121
virtual MHO_BinaryFileStreamer & Self()=0
Returns a reference to the current instance of MHO_BinaryFileStreamer.
virtual std::fstream & GetStream()=0
Getter for fstream object.
MHO_BinaryFileStreamerSingleType()
Definition: MHO_BinaryFileStreamer.hh:107
virtual uint64_t GetNBytesWritten() const =0
Getter for nbytes written.
virtual void AddBytesWritten(uint64_t)=0
Increments fNBytesWritten.
Class MHO_BinaryFileStreamerSingleType - template class for a single-type streamer,...
Definition: MHO_BinaryFileStreamer.hh:39
virtual void AddBytesWritten(uint64_t)=0
Increments the total bytes written by the provided value.
virtual std::fstream & GetStream()=0
Getter for stream (std::fstream) object.
MHO_BinaryFileStreamerSingleType()
Definition: MHO_BinaryFileStreamer.hh:41
friend MHO_BinaryFileStreamer & operator<<(MHO_BinaryFileStreamerSingleType< XValueType > &s, const XValueType &obj)
Definition: MHO_BinaryFileStreamer.hh:51
virtual void ResetByteCount()=0
Resets the byte count to zero.
virtual uint64_t GetNBytesWritten() const =0
Getter for nbytes written.
virtual ~MHO_BinaryFileStreamerSingleType()
Definition: MHO_BinaryFileStreamer.hh:42
friend MHO_BinaryFileStreamer & operator>>(MHO_BinaryFileStreamerSingleType< XValueType > &s, XValueType &obj)
Definition: MHO_BinaryFileStreamer.hh:44
virtual MHO_BinaryFileStreamer & Self()=0
Returns a reference to the current instance of MHO_BinaryFileStreamer.
Class MHO_BinaryFileStreamer declare the concrete class which does the work for file streams.
Definition: MHO_BinaryFileStreamer.hh:293
uint64_t fNBytesWritten
Definition: MHO_BinaryFileStreamer.hh:359
MHO_BinaryFileStreamer & Self() override
Returns a reference to the current instance of MHO_BinaryFileStreamer.
Definition: MHO_BinaryFileStreamer.hh:369
virtual void OpenToWrite() override
Opens a file for binary writing and sets appropriate state.
Definition: MHO_BinaryFileStreamer.cc:39
virtual ~MHO_BinaryFileStreamer()
Definition: MHO_BinaryFileStreamer.hh:297
virtual void OpenToAppend() override
Opens a binary file for appending and sets appropriate file state.
Definition: MHO_BinaryFileStreamer.cc:23
virtual const std::fstream & GetStream() const override
Getter for fstream object.
Definition: MHO_BinaryFileStreamer.hh:337
virtual void OpenToRead() override
Opens a file for binary reading and sets appropriate state.
Definition: MHO_BinaryFileStreamer.cc:7
virtual void AddBytesWritten(uint64_t b) override
Increments the total bytes written by the given amount.
Definition: MHO_BinaryFileStreamer.hh:351
MHO_BinaryFileStreamer()
Definition: MHO_BinaryFileStreamer.hh:295
virtual void ResetByteCount() override
Resets byte count to zero.
Definition: MHO_BinaryFileStreamer.hh:343
virtual uint64_t GetNBytesWritten() const override
Getter for N bytes written.
Definition: MHO_BinaryFileStreamer.hh:359
virtual std::fstream & GetStream() override
Getter for fstream object.
Definition: MHO_BinaryFileStreamer.hh:329
virtual void Close() override
Closes the open file if it exists and sets the file state to closed.
Definition: MHO_BinaryFileStreamer.cc:55
Class MHO_FileStreamer.
Definition: MHO_FileStreamer.hh:23
virtual std::fstream & GetStream()
Getter for stream.
Definition: MHO_FileStreamer.hh:168
Definition: MHO_AdhocFlagging.hh:18
MHO_BinaryFileStreamerMultiType< bool, char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long, float, double, long double, std::complex< float >, std::complex< double >, std::complex< long double >, std::string, mho_json > MHO_BinaryFileStreamerBasicTypes
Definition: MHO_BinaryFileStreamer.hh:286