Graph Class Reference

a graph constructed from a cover file and a message to be embedded More...

#include <Graph.h>

List of all members.

Public Member Functions

 Graph (CvrStgFile *cvr, const BitString &emb, Selector &sel)
 ~Graph (void)
unsigned long getNumVertices (void) const
VertexgetVertex (VertexLabel l) const
void unmarkDeletedAllVertices (void)
float getAvgVertexDegree (void) const
void printVerboseInfo (void)
bool check (bool verbose=false) const
bool check_Vertices (bool verbose=false) const
bool check_SampleValues (bool verbose=false) const
bool check_SampleOccurences (bool verbose=false) const
bool check_SVALists (bool verbose=false) const

Private Member Functions

std::list< SampleOccurence >
::iterator 
markDeletedSampleOccurence (std::list< SampleOccurence >::iterator it)
std::list< SampleOccurence >
::iterator 
unmarkDeletedSampleOccurence (std::list< SampleOccurence >::iterator it)
void constructSamples (const std::vector< SamplePos * > &sposs, std::vector< SampleValue ** > &svalues)
void constructVertices (std::vector< SamplePos * > &sposs, std::vector< SampleValue ** > &svalues, const std::vector< EmbValue > &tvalues)
void constructEdges (void)
bool check_SampleOccurences_size (bool verbose=false) const
bool check_SampleOccurences_correctness (bool verbose=false) const
bool check_SampleOccurences_completeness (bool verbose=false) const
bool check_SVALists_size (bool verbose=false) const
bool check_SVALists_soundness (bool verbose=false) const
bool check_SVALists_sorted (bool verbose=false) const
bool check_SVALists_uniqueness (bool verbose=false) const
bool check_SVALists_completeness (bool verbose=false) const

Private Attributes

std::vector< Vertex * > Vertices
 contains the vertices in this graph - Vertices[l] is the vertex with label l
std::vector< SampleValue * > SampleValues
 contains the list of (unique) sample values - SampleValues[l] is the sample value with label l
std::vector
< SampleValueAdjacencyList * > 
SVALists
 contains the sample value adjacency lists (SVALists[v] contains only sample values with embedded value v)
std::vector< std::list
< SampleOccurence > > 
SampleOccurences
 SampleOccurences[l] contains all occurences of the sample value with label l.
std::vector< UWORD32 * > NumSampleOccurences
std::vector< std::list
< SampleOccurence > > 
DeletedSampleOccurences
 contains those sample occurences that have been marked as deleted from SampleOccurences
std::vector< UWORD32 * > NumDeletedSampleOccurences
CvrStgFileFile
EmbValue EmbValueModulus
unsigned short SamplesPerVertex

Friends

class WKSConstructionHeuristic
class EdgeIterator
class SampleValueAdjacencyList
class Vertex

Detailed Description

This class provides a purely graph-theoretic interface to any other class. Some classes however need access to the internal (steganographic) representation, for example: Vertex, EdgeIterator,... . These are declared as friends of Graph here and thus have direct access to the private data structures.


Constructor & Destructor Documentation

Graph::Graph ( CvrStgFile cvr,
const BitString emb,
Selector sel 
)

construct a graph

Parameters:
cvr the underlying cover file
emb the bitstring to be embedded (with correct arity already set)
Graph::~Graph ( void   ) 

destructor


Member Function Documentation

bool Graph::check ( bool  verbose = false  )  const

check the integrity of all data structures, only used for debugging and testing

bool Graph::check_SampleOccurences ( bool  verbose = false  )  const

check the integrity of the SampleOccurences data structure, it is assumed that DeletedSampleOccurences is empty, only used for debugging and testing

bool Graph::check_SampleOccurences_completeness ( bool  verbose = false  )  const [private]
bool Graph::check_SampleOccurences_correctness ( bool  verbose = false  )  const [private]
bool Graph::check_SampleOccurences_size ( bool  verbose = false  )  const [private]
bool Graph::check_SampleValues ( bool  verbose = false  )  const

check the integrity of the SampleValues data structure, only used for debugging and testing

bool Graph::check_SVALists ( bool  verbose = false  )  const

check the integrity of the SVALists data structure, only used for debugging and testing

bool Graph::check_SVALists_completeness ( bool  verbose = false  )  const [private]
bool Graph::check_SVALists_size ( bool  verbose = false  )  const [private]
bool Graph::check_SVALists_sorted ( bool  verbose = false  )  const [private]
bool Graph::check_SVALists_soundness ( bool  verbose = false  )  const [private]
bool Graph::check_SVALists_uniqueness ( bool  verbose = false  )  const [private]
bool Graph::check_Vertices ( bool  verbose = false  )  const

check the integrity of the Vertices data structure, only used for debugging and testing

void Graph::constructEdges ( void   )  [private]

construct edge-related data structures

needs: SampleValues, Vertices (except SampleOccurenceIts) provides: SVALists, SampleOccurences, Vertices (SampleOccurenceIts)

void Graph::constructSamples ( const std::vector< SamplePos * > &  sposs,
std::vector< SampleValue ** > &  svalues 
) [private]

construct sample-related data structures

needs: sposs(unsorted) provides: svalues(unsorted,unique), SampleValues

void Graph::constructVertices ( std::vector< SamplePos * > &  sposs,
std::vector< SampleValue ** > &  svalues,
const std::vector< EmbValue > &  tvalues 
) [private]

construct vertex-related data structures

needs: sposs(unsorted), svalues(unsorted,unique), tvalues provides: sposs(sorted), Vertices (except SampleOccurenceIts)

float Graph::getAvgVertexDegree ( void   )  const

calculate and return the average vertex degree

unsigned long Graph::getNumVertices ( void   )  const [inline]

get the number of vertices in this graph

Vertex* Graph::getVertex ( VertexLabel  l  )  const [inline]

get a vertex

Parameters:
l the vertex label (index) of the vertex to be returned (must be < getNumVertices())
Returns:
the vertex with label l
std::list< SampleOccurence >::iterator Graph::markDeletedSampleOccurence ( std::list< SampleOccurence >::iterator  it  )  [private]
void Graph::printVerboseInfo ( void   ) 
void Graph::unmarkDeletedAllVertices ( void   ) 
std::list< SampleOccurence >::iterator Graph::unmarkDeletedSampleOccurence ( std::list< SampleOccurence >::iterator  it  )  [private]

Friends And Related Function Documentation

friend class EdgeIterator [friend]
friend class SampleValueAdjacencyList [friend]
friend class Vertex [friend]
friend class WKSConstructionHeuristic [friend]

Member Data Documentation

std::vector<std::list<SampleOccurence> > Graph::DeletedSampleOccurences [private]
CvrStgFile* Graph::File [private]
std::vector<UWORD32*> Graph::NumDeletedSampleOccurences [private]
std::vector<UWORD32*> Graph::NumSampleOccurences [private]

NumSampleOccurences[l][t] contains the number vertices that contain the sample value with label l and associated target t

std::vector<std::list<SampleOccurence> > Graph::SampleOccurences [private]
unsigned short Graph::SamplesPerVertex [private]
std::vector<SampleValue*> Graph::SampleValues [private]
std::vector<SampleValueAdjacencyList*> Graph::SVALists [private]
std::vector<Vertex*> Graph::Vertices [private]

The documentation for this class was generated from the following files:
Generated on Mon Jan 3 13:40:21 2011 for steghide by  doxygen 1.6.3