Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions
ReteNode Class Reference

A abstract base class for all nodes in the rule network. More...

#include <nsRuleNetwork.h>

Inheritance diagram for ReteNode:
Inheritance graph

List of all members.

Public Member Functions

 ReteNode ()
virtual ~ReteNode ()
virtual nsresult Propagate (const InstantiationSet &aInstantiations, void *aClosure)=0
 Propagate a set of instantiations "down" through the network.

Detailed Description

A abstract base class for all nodes in the rule network.

Definition at line 794 of file nsRuleNetwork.h.

Constructor & Destructor Documentation

ReteNode::ReteNode ( ) [inline]

Definition at line 797 of file nsRuleNetwork.h.

virtual ReteNode::~ReteNode ( ) [inline, virtual]

Definition at line 798 of file nsRuleNetwork.h.


Member Function Documentation

virtual nsresult ReteNode::Propagate ( const InstantiationSet aInstantiations,
void aClosure 
) [pure virtual]

Propagate a set of instantiations "down" through the network.

Each instantiation is a partial set of variable-to-value assignments, along with the memory elements that support it.

The node must evaluate each instantiation, and either 1) extend it with additional assignments and memory-element support, or 2) remove it from the set because it is inconsistent with the constraints that this node applies.

The node must then pass the resulting instantiation set along to any of its children in the network. (In other words, the node must recursively call Propagate() on its children. We should fix this to make the algorithm interruptable.)

aInstantiationsthe set of instantiations to propagate down through the network.
aClosureany application-specific information that needs to be passed through the network.
NS_OK if no errors occurred.

Implemented in TestNode, JoinNode, RootNode, and nsInstantiationNode.

Here is the caller graph for this function:

The documentation for this class was generated from the following file: