steghide 0.5.1
Globals Class Reference

some useful pointers that should be global More...

#include <Globals.h>

Public Member Functions

 Globals (CvrStgFile *f=NULL, Graph *g=NULL)
 
void operator= (const Globals &g)
 
void reset (void)
 

Public Attributes

CvrStgFileTheCvrStgFile
 the cover-/stego- file that is operated on (set in CvrStgFile::CvrStgFile)
 
GraphTheGraph
 the graph that is built upon the cover-/stego-file (set in Graph::Graph)
 

Detailed Description

This class provides some useful global variables. They are not static, instead there exists a global Globs object to make it easy to use different Globals objects during one execution (this is necessary for some unit-tests).

The Graph constructor as well as the CvrStgFile constructor write itself into the Globs object. Doing this so early is necessary because the construction of a Graph or CvrStgFile object might already need a correctly set Globs object.

During one "normal" (i.e. non-unit-test) execution of steghide only one Globals object will be used, namely the one created in main(), filled in the Graph and the CvrStgFile constructor and stored at the Globs pointer.

The main purpose of making these variables global is to save memory in classes that are small but used in large numbers (e.g. *SampleValue,...). Using static pointers in these classed would be too chaotic to reset for the unit tests and non-static pointers would need too much memory.

Constructor & Destructor Documentation

◆ Globals()

Globals::Globals ( CvrStgFile * f = NULL,
Graph * g = NULL )
inline

Member Function Documentation

◆ operator=()

void Globals::operator= ( const Globals & g)
inline

◆ reset()

void Globals::reset ( void )
inline

Member Data Documentation

◆ TheCvrStgFile

CvrStgFile* Globals::TheCvrStgFile

◆ TheGraph

Graph* Globals::TheGraph

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