BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnFileReaderRaw.cxx
Go to the documentation of this file.
1
// headers from this target
2
#include "BmnFileReaderRaw.h"
3
4
// o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
5
// ================== BmnFileReaderZstd public methods ==================
6
// o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
7
8
BmnFileReaderRaw::BmnFileReaderRaw
(
const
std::string& fileName)
9
:
BmnIFileReader
(
BmnFileType
::
Raw
, fileName)
10
,
fInputStream
()
11
,
fNextByteToRead
(0ll)
12
{}
13
14
BmnFileReaderRaw::BmnFileReaderRaw
(std::string&& fileName)
15
:
BmnIFileReader
(
BmnFileType
::
Raw
,
std
::move(fileName))
16
,
fInputStream
()
17
,
fNextByteToRead
(0ll)
18
{}
19
20
BmnFileReaderRaw::BmnFileReaderRaw
(
const
std::filesystem::path& filePath)
21
:
BmnIFileReader
(
BmnFileType
::
Raw
, filePath)
22
,
fInputStream
()
23
,
fNextByteToRead
(0ll)
24
{}
25
26
BmnFileReaderRaw::BmnFileReaderRaw
(std::filesystem::path&& filePath)
27
:
BmnIFileReader
(
BmnFileType
::
Raw
,
std
::move(filePath))
28
,
fInputStream
()
29
,
fNextByteToRead
(0ll)
30
{}
31
32
// ========== BmnIFileReaderInterface ==========
33
34
void
BmnFileReaderRaw::Open
(
const
BmnBinaryFileProcessingOptions
processingFlags)
35
{
36
if
(
fInputStream
.is_open()) {
37
LOG(error) <<
"Before opening a new stream with `BmnFileReaderRaw::Open`, close the old one!\n"
;
38
return
;
39
}
40
if
(!
PerformStandardChecksBeforeOpening
(processingFlags))
41
return
;
42
fInputStream
.open(
fFilePath
, std::ios::in | std::ios::binary);
43
}
44
45
void
BmnFileReaderRaw::Close
() noexcept
46
{
47
fInputStream
.close();
48
fNextByteToRead
= 0ll;
49
}
50
51
int64_t
BmnFileReaderRaw::Read
(
void
* dataToFill,
const
int64_t sizeToFill)
52
{
53
fInputStream
.read((
char
*)dataToFill, sizeToFill);
54
int64_t noOfReadBytes =
fInputStream
.gcount();
55
fNextByteToRead
+= noOfReadBytes;
56
return
noOfReadBytes;
57
}
58
59
int64_t
BmnFileReaderRaw::Tell
() const noexcept
60
{
61
return
fNextByteToRead
;
62
}
63
64
void
BmnFileReaderRaw::Seek
(int64_t value)
65
{
66
if
(
fInputStream
.bad())
67
return
;
68
fInputStream
.seekg(value);
69
if
(
fInputStream
.good())
70
fNextByteToRead
= value;
71
}
72
73
bool
BmnFileReaderRaw::IsGood
() const noexcept
74
{
75
return
fInputStream
.good();
76
}
77
78
bool
BmnFileReaderRaw::IsEOF
() const noexcept
79
{
80
return
fInputStream
.eof();
81
}
82
83
void
BmnFileReaderRaw::ClearStateFlags
()
84
{
85
fInputStream
.clear();
86
}
87
88
bool
BmnFileReaderRaw::IsOpen
() const noexcept
89
{
90
return
fInputStream
.is_open();
91
}
BmnFileReaderRaw::IsOpen
virtual bool IsOpen() const noexcept override
Definition
BmnFileReaderRaw.cxx:88
BmnFileReaderRaw::fInputStream
std::ifstream fInputStream
Definition
BmnFileReaderRaw.h:123
BmnFileReaderRaw::ClearStateFlags
virtual void ClearStateFlags() override
Definition
BmnFileReaderRaw.cxx:83
BmnFileReaderRaw::Close
virtual void Close() noexcept override
Definition
BmnFileReaderRaw.cxx:45
BmnFileReaderRaw::BmnFileReaderRaw
BmnFileReaderRaw(const std::string &fileName="")
Definition
BmnFileReaderRaw.cxx:8
BmnFileReaderRaw::fNextByteToRead
int64_t fNextByteToRead
Definition
BmnFileReaderRaw.h:124
BmnFileReaderRaw::Tell
virtual int64_t Tell() const noexcept override
Definition
BmnFileReaderRaw.cxx:59
BmnFileReaderRaw::Seek
virtual void Seek(int64_t value) override
Definition
BmnFileReaderRaw.cxx:64
BmnFileReaderRaw::IsEOF
virtual bool IsEOF() const noexcept override
Definition
BmnFileReaderRaw.cxx:78
BmnFileReaderRaw::Open
virtual void Open(const BmnBinaryFileProcessingOptions processingFlags=BmnBinaryFileProcessingOptions::ReadBinary) override
Definition
BmnFileReaderRaw.cxx:34
BmnFileReaderRaw::IsGood
virtual bool IsGood() const noexcept override
Definition
BmnFileReaderRaw.cxx:73
BmnFileReaderRaw::Read
virtual int64_t Read(void *dataToFill, const int64_t sizeToFill) override
Definition
BmnFileReaderRaw.cxx:51
BmnIFileReader::BmnIFileReader
BmnIFileReader(const BmnFileType fileType, const std::string &fileName="")
Definition
BmnIFileReader.cxx:8
BmnIFileReader::fFilePath
std::filesystem::path fFilePath
Definition
BmnIFileReader.h:199
BmnIFileReader::PerformStandardChecksBeforeOpening
bool PerformStandardChecksBeforeOpening(const BmnBinaryFileProcessingOptions processingFlags)
Definition
BmnIFileReader.cxx:72
BmnFileType
BmnFileType
Definition
BmnFileProcessingFlags.h:16
BmnFileType::Raw
@ Raw
Definition
BmnFileProcessingFlags.h:18
BmnBinaryFileProcessingOptions
BmnBinaryFileProcessingOptions
Definition
BmnFileProcessingFlags.h:95
std
Definition
json.hpp:4446
compression
sources
BmnFileReaderRaw.cxx
Generated on
for BmnRoot by
1.17.0