This Class is used to read and write RLMD files in the root framework.
Definition at line 94 of file TRlmdFile.h.
Public Types | |
enum | EOpenType { EOpenType::kRead, EOpenType::kWrite } |
Public Member Functions | |
TRlmdFile () | |
TRlmdFile (const char *filename, TRawFile::EOpenType open_type=TRawFile::EOpenType::kRead) | |
~TRlmdFile () override | |
void | Close () override |
virtual size_t | GetBytesRead () |
virtual const char * | GetFilename () const |
virtual size_t | GetFileSize () |
virtual std::shared_ptr< TRawEvent > | GetOdbEvent () |
int | GetRunNumber () override |
int | GetSubRunNumber () override |
std::shared_ptr< TRawEvent > | NewEvent () override |
bool | Open (const char *filename) override |
int | Read (std::shared_ptr< TRawEvent > rlmdEvent) override |
void | Skip (size_t nofEvents) override |
std::string | Status (bool long_file_description=true) override |
Protected Attributes | |
size_t | fBytesRead {0} |
std::string | fFilename |
size_t | fFileSize {0} |
std::vector< char > | fReadBuffer |
Private Member Functions | |
time_t | ConvertToEpoch (const std::string &date, const std::string &time) |
Private Attributes | |
RlmdBufferHeader | fBufferHeader |
size_t | fBuffersRead {0} |
std::ifstream | fInputStream |
std::string | fStartDate |
std::string | fStartTime |
std::string | fStopDate |
std::string | fStopTime |
std::string | fTemplate |
#include <TRlmdFile.h>
|
stronginherited |
Enumerator | |
---|---|
kRead | |
kWrite |
Definition at line 33 of file TRawFile.h.
TRlmdFile::TRlmdFile | ( | ) |
default constructor
Definition at line 33 of file TRlmdFile.cxx.
TRlmdFile::TRlmdFile | ( | const char * | filename, |
TRawFile::EOpenType | open_type = TRawFile::EOpenType::kRead |
||
) |
Definition at line 40 of file TRlmdFile.cxx.
References TRawFile::kRead, TRawFile::kWrite, and Open().
|
override |
|
overridevirtual |
Close input file.
Implements TRawFile.
Definition at line 129 of file TRlmdFile.cxx.
References TRawFile::fBytesRead, TRawFile::fFileSize, and fInputStream.
Referenced by Read(), and ~TRlmdFile().
|
private |
Definition at line 226 of file TRlmdFile.cxx.
Referenced by Read().
|
inlinevirtualinherited |
Definition at line 56 of file TRawFile.h.
References TRawFile::fBytesRead.
Referenced by TDataLoop::Iteration().
|
inlinevirtualinherited |
Get the name of this file.
Reimplemented in TMidasFile.
Definition at line 51 of file TRawFile.h.
References TRawFile::fFilename.
Referenced by TLstFile::Open(), TTdrFile::Open(), and Open().
|
inlinevirtualinherited |
Definition at line 57 of file TRawFile.h.
References TRawFile::fFileSize.
Referenced by TDataLoop::Iteration().
|
inlinevirtualinherited |
Reimplemented in TMidasFile.
Definition at line 60 of file TRawFile.h.
|
overridevirtual |
Implements TRawFile.
Definition at line 204 of file TRlmdFile.cxx.
References TRawFile::fFilename.
Referenced by Open().
|
overridevirtual |
|
inlineoverridevirtual |
Implements TRawFile.
Definition at line 116 of file TRlmdFile.h.
|
overridevirtual |
Open input file.
Open a lmd .lmd file with given file name.
Remote files can be accessed using these special file names:
Examples:
[in] | filename | The file to open. |
Implements TRawFile.
Definition at line 81 of file TRlmdFile.cxx.
References TRunInfo::ClearVersion(), RlmdFileHeader::date, TRawFile::fBytesRead, TRawFile::fFilename, TRawFile::fFileSize, fInputStream, fStartDate, fStartTime, fTemplate, TRawFile::GetFilename(), GetRunNumber(), GetSubRunNumber(), HILDATA_RELEASE, TRunInfo::SetDetectorInformation(), TChannel::SetMnemonicClass(), TRunInfo::SetRunInfo(), TRunInfo::SetRunLength(), TRunInfo::SetVersion(), RlmdFileHeader::templateName, and RlmdFileHeader::time.
Referenced by TRlmdFile().
|
overridevirtual |
Read one event from the file.
[in] | Event | Pointer to an empty TRlmdEvent |
EDITED FROM THE ORIGINAL TO RETURN TOTAL SUCESSFULLY BYTES READ INSTEAD OF TRUE/FALSE, PCB
Implements TRawFile.
Definition at line 140 of file TRlmdFile.cxx.
References TRlmdEvent::Clear(), Close(), ConvertToEpoch(), RlmdBufferHeader::dataLength, RlmdFileFooter::date, fBufferHeader, fBuffersRead, TRawFile::fBytesRead, TRawFile::fFileSize, fInputStream, TRawFile::fReadBuffer, fStartDate, fStartTime, fStopDate, fStopTime, TRunInfo::SetRunLength(), TRunInfo::SetRunStart(), TRunInfo::SetRunStop(), RlmdFileFooter::time, and RlmdBufferHeader::type.
|
overridevirtual |
|
overridevirtual |
Implements TRawFile.
Definition at line 54 of file TRlmdFile.cxx.
References TRawFile::fFileSize, fInputStream, HIDE_CURSOR, and SHOW_CURSOR.
|
private |
Definition at line 127 of file TRlmdFile.h.
Referenced by Read().
|
private |
Definition at line 128 of file TRlmdFile.h.
Referenced by Read().
|
protectedinherited |
Definition at line 69 of file TRawFile.h.
Referenced by Close(), TRawFile::GetBytesRead(), Open(), TLstFile::Read(), TTdrFile::Read(), TMidasFile::Read(), Read(), TTdrFile::Skip(), TMidasFile::Skip(), TLstFile::Status(), TTdrFile::Status(), and TMidasFile::Status().
|
protectedinherited |
name of the currently open file
Definition at line 65 of file TRawFile.h.
Referenced by TMidasFile::Close(), TRawFile::GetFilename(), TMidasFile::GetFilename(), TLstFile::GetRunNumber(), TTdrFile::GetRunNumber(), TMidasFile::GetRunNumber(), GetRunNumber(), TTdrFile::GetSubRunNumber(), TMidasFile::GetSubRunNumber(), TLstFile::Open(), TTdrFile::Open(), TMidasFile::Open(), and Open().
|
protectedinherited |
Definition at line 70 of file TRawFile.h.
Referenced by Close(), TRawFile::GetFileSize(), TLstFile::Open(), TMidasFile::Open(), TTdrFile::Open(), Open(), TLstFile::Read(), TTdrFile::Read(), Read(), TTdrFile::Skip(), TLstFile::Status(), TTdrFile::Status(), TMidasFile::Status(), and Status().
|
private |
|
protectedinherited |
Definition at line 67 of file TRawFile.h.
Referenced by TLstFile::Open(), TTdrFile::Open(), TLstFile::Read(), TTdrFile::Read(), TMidasFile::Read(), Read(), TMidasFile::ReadMoreBytes(), and TMidasFile::Skip().
|
private |
Definition at line 120 of file TRlmdFile.h.
|
private |
Definition at line 121 of file TRlmdFile.h.
|
private |
Definition at line 122 of file TRlmdFile.h.
Referenced by Read().
|
private |
Definition at line 123 of file TRlmdFile.h.
Referenced by Read().
|
private |
Definition at line 124 of file TRlmdFile.h.
Referenced by Open().