edgeiterator(3)

NAME

EdgeIterator - allows an iteration trough all edges of a vertex

SYNOPSIS

#include <EdgeIterator.h>
Public Types
enum ITERATIONMODE { SAMPLEOCCURENCE, SAMPLEVALUE }
Public Member Functions
EdgeIterator (void)
EdgeIterator (Vertex *v, ITERATIONMODE m=SAMPLEOCCURENCE)
EdgeIterator (const EdgeIterator &eit)
~EdgeIterator (void)
const Edge * operator * (void) const
void operator++ (void)
void reset (Vertex *v, ITERATIONMODE m=SAMPLEOCCURENCE)
void reset (ITERATIONMODE m=SAMPLEOCCURENCE)
bool isFinished (void) const
VertexLabel getPartnerVertexLabel (void) const
void print (unsigned short spc=0) const
Static Public Member Functions
static UWORD32 getMaxNumEdges (void)
static void setMaxNumEdges (UWORD32 mne)
Private Member Functions
void findNextEdge (void)
bool isDestSampleValueOK (const SampleValue *sv)
Private Attributes
Edge CurrentEdge
    the current edge (is returned by operator*)
ITERATIONMODE Mode
    mode of iteration
unsigned long * SVALIndices
    contains (for every sample value) an index to the current opposite
    neighbour
UWORD32 EdgeIndex
    the index/number of the edge that is currently returned by
    operator*
bool Finished
    is true iff there are no more edges for this source vertex
std::list< SampleOccurence >::const_iterator SampleOccurenceIt
Static Private Attributes
static UWORD32 MaxNumEdges
    the maximum number of edges the EdgeIterator should iterate through

Detailed Description

The Vertex that is the source for all edges is called 'source vertex'. The order of the iteration through the edges is from the shortest to
the longest edge. If two edges have the same length they are ordered
the same way as the corresponding entries in the sample value adjacency lists (for different sample values) respectivly the destination sample occurences in the SampleOccurences data structure (for the same sample value).

EdgeIterator uses an SampleOccurence::const_iterator to store information about the current edge.
Graph::(un)markDeletedSampleOccurence can invalidate such iterators. It is therefore not a good idea to use EdgeIterators at the same time as
the Graph::(un)markDeletedSampleOccurence functionality.

NOTE: EdgeIterator relies on the Globals object pointed to by the Globs pointer. This means that it must be set correctly before using any
method of an EdgeIterator object.

Member Enumeration Documentation

enum EdgeIterator::ITERATIONMODE
Enumerator:
SAMPLEOCCURENCE
SAMPLEVALUE

Constructor & Destructor Documentation

EdgeIterator::EdgeIterator (void)
the default contructor - does not create a valid object
EdgeIterator::EdgeIterator (Vertex * v, ITERATIONMODE m = SAMPLEOCCURENCE)
Parameters:
v the source vertex
EdgeIterator::EdgeIterator (const EdgeIterator & eit)
the copy constructor
EdgeIterator::~EdgeIterator (void)

Member Function Documentation

const Edge* EdgeIterator::operator * (void) const [inline]
get the current edge
Returns:
the edge that is described by the current status of this
EdgeIterator
void EdgeIterator::operator++ (void)
set this iterator to next edge
void EdgeIterator::reset (Vertex * v, ITERATIONMODE m = SAMPLEOCCURENCE)
set this iterator to first (shortest) edge of vertex v
Parameters:
v new vertex (don't change if it is NULL)
void EdgeIterator::reset (ITERATIONMODE m = SAMPLEOCCURENCE)
reset this iterator to first (shortest) edge
bool EdgeIterator::isFinished (void) const [inline]
Returns:
true iff this EdgeIterator points to the end of the list of edges of SrcVertex
VertexLabel EdgeIterator::getPartnerVertexLabel (void) const [inline]
get the label of the partner vertex
Returns:
the label of the vertex that builds the edge returned by operator* together with SrcVertex
static UWORD32 EdgeIterator::getMaxNumEdges (void) [inline, static] static void EdgeIterator::setMaxNumEdges (UWORD32 mne) [inline, static] void EdgeIterator::print (unsigned short spc = 0) const void EdgeIterator::findNextEdge (void) [private]
find the shortest edge, starting the search at
SVOppNeighsIndices[0...k] set the private variables accordingly is only called to find a new destination sample value, i.e. if one of the
SVOppNeighsIndices[i] is changed
bool EdgeIterator::isDestSampleValueOK (const SampleValue * sv) [private]
Returns:
true iff there is a sample with value sv that is part of an edge
starting at SrcVertex

Member Data Documentation

Edge EdgeIterator::CurrentEdge [private] ITERATIONMODE EdgeIterator::Mode [private] unsigned long* EdgeIterator::SVALIndices [private] UWORD32 EdgeIterator::MaxNumEdges [static, private] UWORD32 EdgeIterator::EdgeIndex [private] bool EdgeIterator::Finished [private] std::list<SampleOccurence>::const_iterator EdgeIterator::SampleOccurenceIt
[private]
contains the iterator pointing to the sample occurence that constitutes the edge together with SourceVertex/SourceSamleValueIndex

Author

Generated automatically by Doxygen for steghide from the source code.
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout