PSCF v1.2
Util::BinaryFileIArchive Class Reference

Loading (input) archive for binary istream. More...

#include <BinaryFileIArchive.h>

Public Member Functions

 BinaryFileIArchive ()
 Constructor.
 
 BinaryFileIArchive (std::string filename)
 Constructor.
 
 BinaryFileIArchive (std::ifstream &file)
 Constructor.
 
virtual ~BinaryFileIArchive ()
 Destructor.
 
std::ifstream & file ()
 Get the underlying ifstream by reference.
 
template<typename T >
BinaryFileIArchiveoperator>> (T &data)
 Load (read) one object of type T via the & operator.
 
template<typename T >
BinaryFileIArchiveoperator& (T &data)
 Load (read) one object of type T via the & operator.
 
template<typename T , size_t N>
BinaryFileIArchiveoperator>> (T(&data)[N])
 Load a fixed size array via operator >>.
 
template<typename T , size_t N>
BinaryFileIArchiveoperator& (T(&data)[N])
 Load a fixed size array via operator &.
 
template<typename T >
void unpack (T &data)
 Unpack a single T object.
 
template<typename T >
void unpack (T *array, int n)
 Unpack a C array.
 
template<typename T >
void unpack (T *array, int m, int n, int np)
 Unpack a 2D C array.
 

Static Public Member Functions

static bool is_saving ()
 Is this a saving (output) archive? Returns false.
 
static bool is_loading ()
 Is this a loading (input) archive? Returns true.
 

Detailed Description

Loading (input) archive for binary istream.

Definition at line 30 of file BinaryFileIArchive.h.

Constructor & Destructor Documentation

◆ BinaryFileIArchive() [1/3]

Util::BinaryFileIArchive::BinaryFileIArchive ( )

Constructor.

Definition at line 18 of file BinaryFileIArchive.cpp.

◆ BinaryFileIArchive() [2/3]

Util::BinaryFileIArchive::BinaryFileIArchive ( std::string filename)

Constructor.

Parameters
filenamename of file to open for reading.

Definition at line 27 of file BinaryFileIArchive.cpp.

◆ BinaryFileIArchive() [3/3]

Util::BinaryFileIArchive::BinaryFileIArchive ( std::ifstream & file)

Constructor.

Parameters
fileoutput file

Definition at line 36 of file BinaryFileIArchive.cpp.

◆ ~BinaryFileIArchive()

Util::BinaryFileIArchive::~BinaryFileIArchive ( )
virtual

Destructor.

Definition at line 45 of file BinaryFileIArchive.cpp.

Member Function Documentation

◆ is_saving()

bool Util::BinaryFileIArchive::is_saving ( )
inlinestatic

Is this a saving (output) archive? Returns false.

Definition at line 161 of file BinaryFileIArchive.h.

◆ is_loading()

bool Util::BinaryFileIArchive::is_loading ( )
inlinestatic

Is this a loading (input) archive? Returns true.

Definition at line 164 of file BinaryFileIArchive.h.

◆ file()

std::ifstream & Util::BinaryFileIArchive::file ( )

Get the underlying ifstream by reference.

Definition at line 55 of file BinaryFileIArchive.cpp.

◆ operator>>() [1/2]

template<typename T >
BinaryFileIArchive & Util::BinaryFileIArchive::operator>> ( T & data)
inline

Load (read) one object of type T via the & operator.

Parameters
dataobject of type T to be loaded from archive

Definition at line 173 of file BinaryFileIArchive.h.

◆ operator&() [1/2]

template<typename T >
BinaryFileIArchive & Util::BinaryFileIArchive::operator& ( T & data)
inline

Load (read) one object of type T via the & operator.

Equivalent to the >> operator.

Parameters
dataobject of type T to be loaded from archive

Definition at line 183 of file BinaryFileIArchive.h.

◆ operator>>() [2/2]

template<typename T , size_t N>
BinaryFileIArchive & Util::BinaryFileIArchive::operator>> ( T(&) data[N])
inline

Load a fixed size array via operator >>.

The implementation applies the serialize function to each element. This template should thus work for any type T for which a serialize function exists.

Parameters
dataarray of fixed size N with elements of type T

Definition at line 194 of file BinaryFileIArchive.h.

◆ operator&() [2/2]

template<typename T , size_t N>
BinaryFileIArchive & Util::BinaryFileIArchive::operator& ( T(&) data[N])
inline

Load a fixed size array via operator &.

Equivalent to the corresponding >> operator.

Parameters
dataarray of fixed size N with elements of type T

Definition at line 207 of file BinaryFileIArchive.h.

◆ unpack() [1/3]

template<typename T >
void Util::BinaryFileIArchive::unpack ( T & data)
inline

Unpack a single T object.

Definition at line 221 of file BinaryFileIArchive.h.

Referenced by Util::CArray2DParam< Type >::loadValue(), and Util::CArrayParam< Type >::loadValue().

◆ unpack() [2/3]

template<typename T >
void Util::BinaryFileIArchive::unpack ( T * array,
int n )
inline

Unpack a C array.

Parameters
arraypointer to array (or first element)
nnumber of elements

Definition at line 228 of file BinaryFileIArchive.h.

◆ unpack() [3/3]

template<typename T >
void Util::BinaryFileIArchive::unpack ( T * array,
int m,
int n,
int np )
inline

Unpack a 2D C array.

This unpacks the elements of an m x n logical array into a physical 2D C array of type array[][np], where np is the physical length of a row, i.e., the amount of memory allocated per row.

Parameters
arraypointer to first row
mnumber of rows
nlogical number of columns
npphysical number of columns

Definition at line 239 of file BinaryFileIArchive.h.


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