Loading...
Searching...
No Matches
VdfSpeculationNode Class Referencefinal

A node that pulls on a vector of value that are downstream of the current execution position. More...

#include <speculationNode.h>

+ Inheritance diagram for VdfSpeculationNode:

Public Member Functions

VDF_API VdfSpeculationNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 Construct a new speculation node.
 
virtual bool IsSpeculationNode () const
 Returns true, indicating that this node performs speculation.
 
virtual VdfRequiredInputsPredicate GetRequiredInputsPredicate (const VdfContext &context) const
 Returns a predicate to determine the required read inputs.
 
virtual VDF_API void Compute (const VdfContext &context) const
 Executes the speculation node.
 
VDF_API const VdfScheduleGetSchedule (const VdfSchedule *requestingSched) const
 Returns the schedule for this speculation node.
 
- Public Member Functions inherited from VdfNode
 TF_MALLOC_TAG_NEW ("Vdf", "new VdfNode")
 
VDF_API VdfNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 Constructs a node in network with the inputs described by inputSpecs and outputs described by outputSpecs.
 
VdfId GetId () const
 Returns the unique id of this node in its network.
 
const VdfNetworkGetNetwork () const
 Returns the network to which this node belongs.
 
VdfNetworkGetNetwork ()
 Returns the network to which this node belongs.
 
template<typename TYPE >
bool IsA () const
 Returns true, if this node is of type TYPE.
 
VDF_API bool IsEqual (const VdfNode &rhs) const
 Returns true, if rhs and this node compute the same value(s).
 
const VdfInputSpecsGetInputSpecs () const
 Returns the list of input specs.
 
const VdfInputGetInput (const TfToken &inputName) const
 Returns the connector named inputName, returns NULL if no input of that name exists.
 
VDF_API VdfInputGetInput (const TfToken &inputName)
 Returns the input named inputName, returns NULL if no input of that name exists.
 
const InputMapIterator GetInputsIterator () const
 Returns an iterator class that can be used with TF_FOR_ALL to iterate through the inputs.
 
bool HasInputConnections () const
 Returns true if the node has input connections, false otherwise.
 
bool HasOutputConnections () const
 Returns true if the node has output connections, false otherwise.
 
VDF_API VdfConnectionVector GetInputConnections () const
 Returns a flat vector of all input connections.
 
VDF_API VdfConnectionVector GetOutputConnections () const
 Returns a flat vector of all output connections.
 
const VdfOutputSpecsGetOutputSpecs () const
 Returns the list of output specs.
 
const VdfOutputGetOutput (const TfToken &name) const
 Returns the output object named name.
 
VDF_API VdfOutputGetOutput (const TfToken &name)
 Returns the output object named name.
 
VDF_API VdfOutputGetOptionalOutput (const TfToken &name)
 Returns the output object named name.
 
const VdfOutputGetOptionalOutput (const TfToken &name) const
 Returns the output object named name.
 
const VdfOutputGetOutput () const
 Returns the only output object that this node contains.
 
VDF_API VdfOutputGetOutput ()
 Returns the only output object that this node contains.
 
const OutputMapIterator GetOutputsIterator () const
 Returns an iterator class that can be used with TF_FOR_ALL to iterator through the output connectors.
 
size_t GetNumOutputs () const
 Returns the number of outputs that this node currently has.
 
size_t GetNumInputs () const
 Returns the number of inputs that this node currently has.
 
VDF_API void SetDebugName (const std::string &name)
 Sets the debug name for this node.
 
template<class F >
void SetDebugNameCallback (F &&f)
 Sets the debug name for this node with a lazily invoked callback.
 
VDF_API void SetDebugNameCallback (VdfNodeDebugNameCallback &&callback)
 Sets the debug name for this node with a lazily invoked callback.
 
VDF_API const std::string GetDebugName () const
 Returns the debug name for this node, if one is registered.
 
virtual VDF_API size_t GetMemoryUsage () const
 Returns the amount of memory used by the node in bytes.
 
VDF_API VdfMask ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 Returns a mask that indicates which elements of the data that flows along output depend on the elements indicated by inputDependencyMask that flow in via inputConnection.
 
VDF_API void ComputeOutputDependencyMasks (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, VdfMaskedOutputVector *outputDependencies) const
 Vectorized version of ComputeOutputDependencyMask.
 
VDF_API VdfMask::Bits ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 Returns a mask that indicates which elements of the data that flows along inputConnection are needed to compute the data flowing out as indicated by maskedOutput.
 
VDF_API VdfConnectionAndMaskVector ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 Vectorized version of ComputeInputDependencyMask.
 
VDF_API VdfConnectionAndMaskVector ComputeInputDependencyRequest (const VdfMaskedOutputVector &request) const
 Vectorized version of ComputeInputDependencyMasks().
 

Additional Inherited Members

- Static Public Member Functions inherited from VdfNode
static VdfIndex GetIndexFromId (const VdfId id)
 Get the node index from the node id.
 
static VdfVersion GetVersionFromId (const VdfId id)
 Get the node version from the node id.
 
- Protected Member Functions inherited from VdfNode
VDF_API VdfNode (VdfNetwork *network)
 Protected constructor.
 
VDF_API void _AppendInputs (const VdfInputSpecs &inputSpecs, std::vector< VdfInput * > *resultingInputs=NULL)
 Builds inputs from the supplied input specs and appends them to the already-existing set of inputs, if any.
 
VDF_API void _AppendOutputs (const VdfOutputSpecs &outputSpecs, std::vector< VdfOutput * > *resultingOutputs=NULL)
 Builds outputs from the supplied output specs and appends them to the already-existing set of outputs, if any.
 
virtual VDF_API bool _IsDerivedEqual (const VdfNode &rhs) const
 Can be overridden by derived classes to facilitate equality comparision.
 
virtual VDF_API void _DidAddInputConnection (const VdfConnection *c, int atIndex)
 Notifies a node that one connection has been added.
 
virtual VDF_API void _WillRemoveInputConnection (const VdfConnection *c)
 Notifies a node that one connection will be removed.
 
virtual VDF_API ~VdfNode ()
 Protected Destructor.
 
void _SetId (const VdfVersion version, const VdfIndex index)
 Sets the node id.
 
virtual VDF_API VdfMask _ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 Returns a mask that indicates which elements of the data that flows along output depend on the elements indicated by inputDependencyMask that flow in via inputConnection.
 
virtual VDF_API bool _ComputeOutputDependencyMasks (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, VdfMaskedOutputVector *outputDependencies) const
 Vectorized version of _ComputeOutputDependencyMask.
 
virtual VDF_API VdfConnectionAndMaskVector _ComputeInputDependencyRequest (const VdfMaskedOutputVector &request) const
 Vectorized version of _ComputeOutputDependencyMasks.
 
virtual VDF_API VdfMask::Bits _ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 Returns a mask that indicates which elements of the data that flows along inputConnection are needed to compute the data flowing out as indicated by maskedOutput.
 
virtual VDF_API VdfConnectionAndMaskVector _ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 Vectorized version of _ComputeInputDependencyMask.
 
virtual VDF_API const VdfInputAndOutputSpecs_AcquireInputAndOutputSpecsPointer (const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 Gets an input/output specs pointer that the node can use.
 
virtual VDF_API void _ReleaseInputAndOutputSpecsPointer (const VdfInputAndOutputSpecs *specs)
 Releases an input/output specs pointer that was acquired with a previous call to _AcquireInputAndOutputSpecsPointer().
 
VDF_API void _InitializeInputAndOutputSpecs (const VdfInputAndOutputSpecs *specs)
 Initializes the input/output specs pointer for this node.
 
VDF_API void _ClearInputAndOutputSpecsPointer ()
 Clears the input/output specs pointer.
 
VDF_API void _ReplaceInputSpecs (const VdfInputSpecs &inputSpecs)
 Replaces the node's input specs with inputSpecs and rebuilds all inputs.
 
- Static Protected Member Functions inherited from VdfNode
template<typename BaseClassType , typename ClassType >
static size_t _GetMemoryUsage (const ClassType &c, size_t dynamicSize)
 Helper method for determining the amount of memory that a node uses.
 

Detailed Description

A node that pulls on a vector of value that are downstream of the current execution position.

Definition at line 35 of file speculationNode.h.

Constructor & Destructor Documentation

◆ VdfSpeculationNode()

VDF_API VdfSpeculationNode ( VdfNetwork network,
const VdfInputSpecs inputSpecs,
const VdfOutputSpecs outputSpecs 
)

Construct a new speculation node.

Member Function Documentation

◆ Compute()

virtual VDF_API void Compute ( const VdfContext context) const
virtual

Executes the speculation node.

Implements VdfNode.

◆ GetRequiredInputsPredicate()

virtual VdfRequiredInputsPredicate GetRequiredInputsPredicate ( const VdfContext context) const
inlinevirtual

Returns a predicate to determine the required read inputs.

For speculation nodes, this is empty since speculation nodes technically do not need input values (they compute them from their own executors). Returning anything here would cause infinite loops.

Reimplemented from VdfNode.

Definition at line 56 of file speculationNode.h.

◆ GetSchedule()

VDF_API const VdfSchedule & GetSchedule ( const VdfSchedule requestingSched) const

Returns the schedule for this speculation node.

Schedules if necessary.

◆ IsSpeculationNode()

virtual bool IsSpeculationNode ( ) const
inlinevirtual

Returns true, indicating that this node performs speculation.

Reimplemented from VdfNode.

Definition at line 48 of file speculationNode.h.


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