HOPS
HOPS class reference
Public Member Functions | Protected Types | Protected Attributes | List of all members
hops::MHO_FileStreamer Class Referenceabstract

Class MHO_FileStreamer. More...

#include <MHO_FileStreamer.hh>

Inheritance diagram for hops::MHO_FileStreamer:
[legend]

Public Member Functions

 MHO_FileStreamer ()
 
virtual ~MHO_FileStreamer ()
 
virtual void Close ()=0
 Checks if file is closed. More...
 
std::string GetFilename ()
 Getter for filename. More...
 
virtual std::fstream & GetStream ()
 Getter for stream. More...
 
virtual const std::fstream & GetStream () const
 Getter for stream. More...
 
virtual bool IsClosed ()
 Checks if the file is closed. More...
 
virtual bool IsObjectUnknown ()
 Checks if object state is unknown. More...
 
virtual bool IsOpenForRead ()
 Checks if a file is open for reading. More...
 
virtual bool IsOpenForWrite ()
 Checks if file is open for writing. More...
 
virtual void OpenToAppend ()=0
 Function OpenToAppend. More...
 
virtual void OpenToRead ()=0
 Function OpenToRead - let derived class specify the exact handling of file. More...
 
virtual void OpenToWrite ()=0
 Function OpenToWrite. More...
 
virtual void ResetObjectState ()
 Resets the object state to unset. More...
 
void SetFilename (const std::string filename)
 Setter for filename. More...
 
virtual void SetObjectUnknown ()
 Setter for object state - if an unrecognized object is encountered in streaming, flag this object by changing the 'object' state to 'unknown'. More...
 
virtual void SkipAhead (size_t n_bytes)
 Seeks ahead in file by specified number of bytes and updates object state. More...
 

Protected Types

enum  FileState { writeable , readable , closed , undefined }
 
enum  ObjectState { unset , unknown }
 

Protected Attributes

char * fBuffer
 
std::streamsize fBufferSize
 
std::fstream fFile
 
std::string fFilename
 
FileState fFileState
 
ObjectState fObjectState
 

Detailed Description

Class MHO_FileStreamer.

Streams objects to/from a file, uses a 2MB buffer.

Author
J. Barrett - barre.nosp@m.ttj@.nosp@m.mit.e.nosp@m.du
Date
Wed Apr 21 13:40:18 2021 -0400

Member Enumeration Documentation

◆ FileState

Enumerator
writeable 
readable 
closed 
undefined 

◆ ObjectState

Enumerator
unset 
unknown 

Constructor & Destructor Documentation

◆ MHO_FileStreamer()

hops::MHO_FileStreamer::MHO_FileStreamer ( )
inline

2MB chunk

◆ ~MHO_FileStreamer()

virtual hops::MHO_FileStreamer::~MHO_FileStreamer ( )
inlinevirtual

Member Function Documentation

◆ Close()

virtual void hops::MHO_FileStreamer::Close ( )
pure virtual

Checks if file is closed.

Note
This is a virtual function.

Implemented in hops::MHO_BinaryFileStreamer.

◆ GetFilename()

std::string hops::MHO_FileStreamer::GetFilename ( )
inline

Getter for filename.

Returns
Current filename as a string

◆ GetStream() [1/2]

virtual std::fstream& hops::MHO_FileStreamer::GetStream ( )
inlinevirtual

Getter for stream.

Returns
Reference to the std::fstream object
Note
This is a virtual function.

Reimplemented in hops::MHO_BinaryFileStreamer.

◆ GetStream() [2/2]

virtual const std::fstream& hops::MHO_FileStreamer::GetStream ( ) const
inlinevirtual

Getter for stream.

Returns
Reference to std::fstream object
Note
This is a virtual function.

Reimplemented in hops::MHO_BinaryFileStreamer.

◆ IsClosed()

virtual bool hops::MHO_FileStreamer::IsClosed ( )
inlinevirtual

Checks if the file is closed.

Returns
True if the file is closed, false otherwise.
Note
This is a virtual function.

◆ IsObjectUnknown()

virtual bool hops::MHO_FileStreamer::IsObjectUnknown ( )
inlinevirtual

Checks if object state is unknown.

Returns
True if object state is unknown, false otherwise.
Note
This is a virtual function.

◆ IsOpenForRead()

virtual bool hops::MHO_FileStreamer::IsOpenForRead ( )
inlinevirtual

Checks if a file is open for reading.

Returns
True if file is readable, false otherwise.
Note
This is a virtual function.

◆ IsOpenForWrite()

virtual bool hops::MHO_FileStreamer::IsOpenForWrite ( )
inlinevirtual

Checks if file is open for writing.

Returns
True if file is open for write, false otherwise.
Note
This is a virtual function.

◆ OpenToAppend()

virtual void hops::MHO_FileStreamer::OpenToAppend ( )
pure virtual

Function OpenToAppend.

Note
This is a virtual function.

Implemented in hops::MHO_BinaryFileStreamer.

◆ OpenToRead()

virtual void hops::MHO_FileStreamer::OpenToRead ( )
pure virtual

Function OpenToRead - let derived class specify the exact handling of file.

Note
This is a virtual function.

Implemented in hops::MHO_BinaryFileStreamer.

◆ OpenToWrite()

virtual void hops::MHO_FileStreamer::OpenToWrite ( )
pure virtual

Function OpenToWrite.

Note
This is a virtual function.

Implemented in hops::MHO_BinaryFileStreamer.

◆ ResetObjectState()

virtual void hops::MHO_FileStreamer::ResetObjectState ( )
inlinevirtual

Resets the object state to unset.

Note
This is a virtual function.

◆ SetFilename()

void hops::MHO_FileStreamer::SetFilename ( const std::string  filename)
inline

Setter for filename.

Parameters
filenameNew filename to set

◆ SetObjectUnknown()

virtual void hops::MHO_FileStreamer::SetObjectUnknown ( )
inlinevirtual

Setter for object state - if an unrecognized object is encountered in streaming, flag this object by changing the 'object' state to 'unknown'.

Note
This is a virtual function.

◆ SkipAhead()

virtual void hops::MHO_FileStreamer::SkipAhead ( size_t  n_bytes)
inlinevirtual

Seeks ahead in file by specified number of bytes and updates object state.

Parameters
n_bytesNumber of bytes to skip ahead.
Note
This is a virtual function.

Member Data Documentation

◆ fBuffer

char* hops::MHO_FileStreamer::fBuffer
protected

◆ fBufferSize

std::streamsize hops::MHO_FileStreamer::fBufferSize
protected

◆ fFile

std::fstream hops::MHO_FileStreamer::fFile
protected

◆ fFilename

std::string hops::MHO_FileStreamer::fFilename
protected

◆ fFileState

FileState hops::MHO_FileStreamer::fFileState
protected

◆ fObjectState

ObjectState hops::MHO_FileStreamer::fObjectState
protected

The documentation for this class was generated from the following file: