HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PDGE_PropagateGroup Class Reference

#include <PDGE_PropagateGroup.h>

+ Inheritance diagram for PDGE_PropagateGroup:

Public Member Functions

 PDGE_PropagateGroup (PDGE_DependencyOwner *owner)
 
virtual ~PDGE_PropagateGroup ()
 
int64 getMemoryUsage (bool inclusive) const
 Returns the total memory usage of this propagate groiup. More...
 
void addTarget (PDGE_DependencyOwner *target)
 
void addInputGroup (PDGE_PropagateGroup *input_group)
 
void reset (PDGE_Dependency *extra_dependency)
 
void addEntry (PDGE_DependencyOwner *target, PDGE_Dependency *root, PDGE_Dependency *dependent)
 
void propagateDependencies (PDGE_Dependency *source, PDGE_Dependency *destination)
 
void upstreamOwners (PDGE_DependencyOwner::Array &owners, PDGE_Dependency *dependency) const
 
PDGE_DependencyOwnerrootOwner (PDGE_Dependency *dependent) const
 Returns the root owner for a propagate dependency owned by this group. More...
 

Detailed Description

Definition at line 28 of file PDGE_PropagateGroup.h.

Constructor & Destructor Documentation

PDGE_PropagateGroup::PDGE_PropagateGroup ( PDGE_DependencyOwner owner)

Constructs a new propagate group with the specified owner. The owner is used to when connecting this group to input groups and adding entries that should only propagate to a certain depth or target node.

virtual PDGE_PropagateGroup::~PDGE_PropagateGroup ( )
virtual

Member Function Documentation

void PDGE_PropagateGroup::addEntry ( PDGE_DependencyOwner target,
PDGE_Dependency root,
PDGE_Dependency dependent 
)

Adds an propagation entry to this group. The entry must have a target owner and a root dependency. Optionally, an additional dependent can be passed that will automatically be made to depend on the new entry.

The root is the source dependency for which the entry is associated with. The entry will wait for the root and all of its descendants between the target owner and this group.

void PDGE_PropagateGroup::addInputGroup ( PDGE_PropagateGroup input_group)
inline

Adds an input group to this propagate group. Dependencies are added on input group entries, and propagate back down to this group during evaluation.

Definition at line 49 of file PDGE_PropagateGroup.h.

void PDGE_PropagateGroup::addTarget ( PDGE_DependencyOwner target)
inline

Adds a target owner to the set of targets associated with this group. These are the owners that the group may target, and the group will not recurse beyond them when adding dependencies.

Definition at line 43 of file PDGE_PropagateGroup.h.

int64 PDGE_PropagateGroup::getMemoryUsage ( bool  inclusive) const

Returns the total memory usage of this propagate groiup.

void PDGE_PropagateGroup::propagateDependencies ( PDGE_Dependency source,
PDGE_Dependency destination 
)

Copies relevant propagate depenencies from source onto the specified downstream dependent, based on what propagate entries exist in this map.

void PDGE_PropagateGroup::reset ( PDGE_Dependency extra_dependency)

Resets the propagate group. This will free all owned dependencies and clear all structures including input groups and targets.

PDGE_DependencyOwner* PDGE_PropagateGroup::rootOwner ( PDGE_Dependency dependent) const

Returns the root owner for a propagate dependency owned by this group.

void PDGE_PropagateGroup::upstreamOwners ( PDGE_DependencyOwner::Array owners,
PDGE_Dependency dependency 
) const

Returns the list of dependency owners for a propagate dependency owned by this group.


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