Investigators
[Graph proxy and component objects]


Data Structures

class  iGraph
 The default implementation of graph investigators. More...
class  investigator
 The base class for all graph investigators. More...

Functions

virtual investigatorabstractMixedGraph::NewInvestigator () const throw ()
THandle abstractMixedGraph::Investigate () const throw (ERRejected)
investigatorabstractMixedGraph::Investigator (THandle H) const throw (ERRejected)
void abstractMixedGraph::Reset (THandle H) const throw (ERRejected)
void abstractMixedGraph::Reset (THandle H, TNode v) const throw (ERRange,ERRejected)
TArc abstractMixedGraph::Read (THandle H, TNode v) const throw (ERRange,ERRejected)
TArc abstractMixedGraph::Peek (THandle H, TNode v) const throw (ERRange,ERRejected)
bool abstractMixedGraph::Active (THandle H, TNode v) const throw (ERRange,ERRejected)
void abstractMixedGraph::Close (THandle H) const throw (ERRejected)
void abstractMixedGraph::ReleaseInvestigators () const throw ()
void abstractMixedGraph::StripInvestigators () const throw ()

Function Documentation

bool Active THandle  H,
TNode  v
const throw (ERRange,ERRejected) [inherited]
 

Check for unvisited arcs in a managed node incidence list.

Parameters:
H An investigator handle
v A node index ranged [0,1,..,n-1]
Return values:
true There are unvisited arcs in the incidence list of v, in the investigator with handle H

void Close THandle  H  )  const throw (ERRejected) [inherited]
 

Conclude a managed graph search.

Parameters:
H An investigator handle
This concludes a graph search started with Investigate(). The investigator with handle H is returned to the pool of available investigator objects.

THandle Investigate  )  const throw (ERRejected) [inherited]
 

Provide a managed investigator object for this graph.

Returns:
The handle of an unused investigator object
This utilizes an internal cache of investigator objects. If no unused investigator object is found in the cache, a new one is allocated and added to the cache. In either case, the handle of an investigator in this cache is returned.

investigator & Investigator THandle  H  )  const throw (ERRejected) [inherited]
 

Obtain direct access to a managed investigator object.

Parameters:
H An investigator handle
Returns:
A reference of the investigator object with handle H

investigator * NewInvestigator  )  const throw () [virtual, inherited]
 

Allocate an investigator object for this graph.

Returns:
A pointer to the new investigator object
Graphs work as factories for their own investigators. This is the factory method, and it is reimplemented in several subclasses.

Reimplemented in layeredAuxNetwork, and surfaceGraph.

TArc Peek THandle  H,
TNode  v
const throw (ERRange,ERRejected) [inherited]
 

Return the currently indexed arc in a managed node incidence list.

Parameters:
H An investigator handle
v A node index ranged [0,1,..,n-1]
Returns:
An arc index ranged [0,1,..,2*mAct-1]
For the investigator indexed by H, this returns the currently indexed arc in the incidence list of node v. The indexed arc does not change, that is, this arc is visited once more. If all arcs with start node v have been visited, an ERRejected exception is raised.

TArc Read THandle  H,
TNode  v
const throw (ERRange,ERRejected) [inherited]
 

Read an arc from a managed node incidence list and mark it as visited.

Parameters:
H An investigator handle
v A node index ranged [0,1,..,n-1]
Returns:
An arc index ranged [0,1,..,2*mAct-1]
For the investigator indexed by H, this returns the currently indexed arc a in the incidence list of node v, and then positions the hidden iterator for this incidence list to the arc Right(a,v). If all arcs with start node v have been visited, an ERRejected exception is raised.

void ReleaseInvestigators  )  const throw () [inherited]
 

Disallocate all managed investigator objects.

void Reset THandle  H,
TNode  v
const throw (ERRange,ERRejected) [inherited]
 

Reinitialize a particular managed incidence list.

Parameters:
H An investigator handle
v A node index ranged [0,1,..,n-1]
For the investigator indexed by H, position the iterator for the incidence list of node v to the First(v) arc. Practically, all arcs are marked unvisited.

void Reset THandle  H  )  const throw (ERRejected) [inherited]
 

Reinitialize a managed graph search.

Parameters:
H An investigator handle
For the investigator indexed by H, this restarts the graph search. That is, the iterators of all incidence lists are positioned the First() arc. Practically, all arcs are marked unvisited.

void StripInvestigators  )  const throw () [inherited]
 

Compress the list of managed investigator objects.