mat::FileWritable Class Reference

Write and read objects to/from file. More...

#include <FileWritable.h>

Inheritance diagram for mat::FileWritable:
mat::MatrixBase< Treal, Tmatrix > mat::VectorGeneral< Treal, Tvector > mat::MatrixGeneral< Treal, Tmatrix > mat::MatrixSymmetric< Treal, Tmatrix > mat::MatrixTriangular< Treal, Tmatrix >

List of all members.

Classes

struct  Manager
struct  Stats

Public Member Functions

void writeToFile ()
 Write object to file if filewrite is active.
void readFromFile ()
 Read object from file if filewrite is active.
void copyToFile (const char *destFileName)
void copyFromFile (const char *sourceFileName)
bool isOnFile ()
 Check if object is on file.
long int fileSize ()
 Return file size.

Static Public Member Functions

static void setPath (char const *const newPath)
 Set the path to which the objects will be written.
static void activate ()
 Activate the filewriting.
static std::string getStatsFileSizes ()
static std::string writeAndReadAll ()
static void resetStats ()
static std::string getStatsTimeWrite ()
static std::string getStatsTimeRead ()
static std::string getStatsTimeCopyAndAssign ()
static std::string getStatsCountWrite ()
static std::string getStatsCountRead ()
static std::string getStatsCountCopyAndAssign ()

Protected Types

typedef std::map< std::string,
double > 
TypeTimeMap
typedef std::map< std::string,
int > 
TypeCountMap
typedef std::set< FileWritable * > ObjPtrSet

Protected Member Functions

virtual void clear ()=0
 Release memory for the information written to file.
virtual void inMemorySet (bool)=0
 Make object invalid (false) via this function when object is written to file and valid (true) when object is read from file.
virtual void writeToFileProt (std::ofstream &) const =0
 Write object to file.
virtual void readFromFileProt (std::ifstream &)=0
 Read object from file.
 FileWritable ()
 Gives each object a unique ID-number and filename.
virtual ~FileWritable ()
 Removes file, if any.
 FileWritable (FileWritable const &)
FileWritableoperator= (FileWritable const &)
virtual std::string obj_type_id () const =0

Static Protected Member Functions

static std::string getStatsTime (TypeTimeMap &theMap)
static std::string getStatsCount (TypeCountMap &theMap)
static std::string getStatsFileSizes (ObjPtrSet const &set)

Private Attributes

unsigned int const IDNumber
 Each object has its unique ID-number.
char * fileName
 Each object has its unique filename.
bool objectIsOnFile
 States whether the object is on file or not.

Static Private Attributes

static unsigned int nObjects = 0
 The number of instantiated objects.
static char * path = NULL
 The path to which files will be written.
static bool active = false
 States whether the filewriting is active.

Detailed Description

Write and read objects to/from file.

This is an abstract class. Classes that are derived from this class must define the following pure virtual functions to be able to instantiate objects:


Member Typedef Documentation

typedef std::set<FileWritable*> mat::FileWritable::ObjPtrSet [protected]
typedef std::map<std::string, int> mat::FileWritable::TypeCountMap [protected]
typedef std::map<std::string, double> mat::FileWritable::TypeTimeMap [protected]

Constructor & Destructor Documentation

mat::FileWritable::FileWritable (  )  [protected]

Gives each object a unique ID-number and filename.

References fileName, IDNumber, nObjects, path, and mat::FileWritable::Manager::registerObj().

mat::FileWritable::~FileWritable (  )  [protected, virtual]
mat::FileWritable::FileWritable ( FileWritable const &  other  )  [protected]

Member Function Documentation

void mat::FileWritable::activate (  )  [static]

Activate the filewriting.

Without calling this function no filewriting will occur. This function can only be called before instantiation of objects.

References active, and nObjects.

Referenced by es_run().

virtual void mat::FileWritable::clear (  )  [protected, pure virtual]

Release memory for the information written to file.

Implemented in mat::MatrixBase< Treal, Tmatrix >, mat::VectorGeneral< Treal, Tvector >, and mat::VectorGeneral< ergo_real, Vectorrr >.

Referenced by copyFromFile(), and writeToFile().

void mat::FileWritable::copyFromFile ( const char *  sourceFileName  ) 
void mat::FileWritable::copyToFile ( const char *  destFileName  ) 
long int mat::FileWritable::fileSize (  ) 

Return file size.

Call only if obj is on file.

References active, fileName, and isOnFile().

std::string mat::FileWritable::getStatsCount ( TypeCountMap theMap  )  [static, protected]
std::string mat::FileWritable::getStatsCountCopyAndAssign (  )  [static]
std::string mat::FileWritable::getStatsCountRead (  )  [static]
std::string mat::FileWritable::getStatsCountWrite (  )  [static]
std::string mat::FileWritable::getStatsFileSizes ( ObjPtrSet const &  set  )  [static, protected]
std::string mat::FileWritable::getStatsFileSizes (  )  [static]
std::string mat::FileWritable::getStatsTime ( TypeTimeMap theMap  )  [static, protected]
std::string mat::FileWritable::getStatsTimeCopyAndAssign (  )  [static]
std::string mat::FileWritable::getStatsTimeRead (  )  [static]
std::string mat::FileWritable::getStatsTimeWrite (  )  [static]
virtual void mat::FileWritable::inMemorySet ( bool   )  [protected, pure virtual]

Make object invalid (false) via this function when object is written to file and valid (true) when object is read from file.

Implemented in mat::MatrixBase< Treal, Tmatrix >, mat::VectorGeneral< Treal, Tvector >, and mat::VectorGeneral< ergo_real, Vectorrr >.

Referenced by copyFromFile(), readFromFile(), and writeToFile().

bool mat::FileWritable::isOnFile (  )  [inline]

Check if object is on file.

References objectIsOnFile.

Referenced by fileSize().

virtual std::string mat::FileWritable::obj_type_id (  )  const [protected, pure virtual]
FileWritable & mat::FileWritable::operator= ( FileWritable const &  other  )  [protected]
void mat::FileWritable::readFromFile (  ) 
virtual void mat::FileWritable::readFromFileProt ( std::ifstream &   )  [protected, pure virtual]
void mat::FileWritable::resetStats (  )  [static]
void mat::FileWritable::setPath ( char const *const   newPath  )  [static]

Set the path to which the objects will be written.

This function can only be called before instantiation of objects.

References nObjects, and path.

Referenced by es_run().

std::string mat::FileWritable::writeAndReadAll (  )  [static]
void mat::FileWritable::writeToFile (  ) 
virtual void mat::FileWritable::writeToFileProt ( std::ofstream &   )  const [protected, pure virtual]

Member Data Documentation

bool mat::FileWritable::active = false [static, private]

States whether the filewriting is active.

Referenced by activate(), copyFromFile(), copyToFile(), fileSize(), FileWritable(), operator=(), readFromFile(), writeToFile(), and ~FileWritable().

char* mat::FileWritable::fileName [private]

Each object has its unique filename.

Referenced by copyFromFile(), copyToFile(), fileSize(), FileWritable(), operator=(), readFromFile(), writeToFile(), and ~FileWritable().

unsigned int const mat::FileWritable::IDNumber [private]

Each object has its unique ID-number.

Referenced by FileWritable().

unsigned int mat::FileWritable::nObjects = 0 [static, private]

The number of instantiated objects.

Note that the objects may be of different types derived from this base class.

Referenced by activate(), FileWritable(), and setPath().

States whether the object is on file or not.

Referenced by copyFromFile(), copyToFile(), FileWritable(), isOnFile(), operator=(), readFromFile(), writeToFile(), and ~FileWritable().

char * mat::FileWritable::path = NULL [static, private]

The path to which files will be written.

Referenced by FileWritable(), and setPath().


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

Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1