#include <Globals.h>
Public Member Functions | |
Globals (CvrStgFile *f=NULL, Graph *g=NULL) | |
void | operator= (const Globals &g) |
void | reset (void) |
Public Attributes | |
CvrStgFile * | TheCvrStgFile |
the cover-/stego- file that is operated on (set in CvrStgFile::CvrStgFile) | |
Graph * | TheGraph |
the graph that is built upon the cover-/stego-file (set in Graph::Graph) |
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.
Globals::Globals | ( | CvrStgFile * | f = NULL , |
|
Graph * | g = NULL | |||
) | [inline] |
void Globals::operator= | ( | const Globals & | g | ) | [inline] |
void Globals::reset | ( | void | ) | [inline] |