Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

DataGraphTraverser Class Reference

This object supervises the traversal of the data graph and the moving of data from one DataNode to its children. More...

#include <dataGraphTraverser.h>

List of all members.

Public Member Functions

 DataGraphTraverser ()
 ~DataGraphTraverser ()
void traverse (PandaNode *node)
 Starts the traversal of the data graph at the indicated root node.

void traverse_below (PandaNode *node, const DataNodeTransmit &output)
 Continues the traversal to all the children of the indicated node, passing in the given data, without actually calling transmit_data() on the given node.

void collect_leftovers ()
 Pick up any nodes that didn't get completely traversed.


Private Types

typedef pvector< DataNodeTransmitDataVector
typedef pmap< DataNode *,
CollectedData
MultipassData

Private Member Functions

void r_transmit (DataNode *data_node, const DataNodeTransmit inputs[])
 Part of the recursive implementation of traverse().


Private Attributes

MultipassData _multipass_data


Detailed Description

This object supervises the traversal of the data graph and the moving of data from one DataNode to its children.

The data graph is used to manage data from input devices, etc. See the overview of the data graph in dataNode.h.

Definition at line 49 of file dataGraphTraverser.h.


Member Typedef Documentation

typedef pvector<DataNodeTransmit> DataGraphTraverser::DataVector [private]
 

Definition at line 61 of file dataGraphTraverser.h.

typedef pmap<DataNode *, CollectedData> DataGraphTraverser::MultipassData [private]
 

Definition at line 71 of file dataGraphTraverser.h.


Constructor & Destructor Documentation

DataGraphTraverser::DataGraphTraverser  ) 
 

Definition at line 60 of file dataGraphTraverser.cxx.

DataGraphTraverser::~DataGraphTraverser  ) 
 

Definition at line 72 of file dataGraphTraverser.cxx.


Member Function Documentation

void DataGraphTraverser::collect_leftovers  ) 
 

Pick up any nodes that didn't get completely traversed.

These must be nodes that have multiple parents, with at least one parent completely outside of the data graph.

Definition at line 176 of file dataGraphTraverser.cxx.

void DataGraphTraverser::r_transmit DataNode data_node,
const DataNodeTransmit  inputs[]
[private]
 

Part of the recursive implementation of traverse().

This transmits the given data into the indicated DataNode, and then sends the output data to each of the node's children.

Definition at line 205 of file dataGraphTraverser.cxx.

Referenced by traverse().

void DataGraphTraverser::traverse PandaNode node  ) 
 

Starts the traversal of the data graph at the indicated root node.

Definition at line 86 of file dataGraphTraverser.cxx.

References _multipass_data, DCAST, PandaNode::get_children(), DataNode::get_class_type(), PandaNode::get_num_parents(), TypedObject::is_of_type(), and r_transmit().

void DataGraphTraverser::traverse_below PandaNode node,
const DataNodeTransmit output
 

Continues the traversal to all the children of the indicated node, passing in the given data, without actually calling transmit_data() on the given node.

Definition at line 115 of file dataGraphTraverser.cxx.


Member Data Documentation

MultipassData DataGraphTraverser::_multipass_data [private]
 

Definition at line 72 of file dataGraphTraverser.h.

Referenced by traverse().


The documentation for this class was generated from the following files:
Generated on Fri May 2 00:49:11 2003 for Panda by doxygen1.3