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.