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

A CallbackNode which allows for passing in a custom input / output dependency callback. More...

#include <testUtils.h>

+ Inheritance diagram for VdfTestUtils::DependencyCallbackNode:

Public Types

using InputDependencyFunction = std::function< VdfMask::Bits(const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection)>
 
using OutputDependencyFunction = std::function< VdfMask(const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output)>
 
- Public Types inherited from VdfTestUtils::CallbackNode
using ValueFunction = void(const VdfContext &context)
 

Public Member Functions

 DependencyCallbackNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs, ValueFunction *function, const InputDependencyFunction &inputDependencyFunction, const OutputDependencyFunction &outputDependencyFunction)
 
- Public Member Functions inherited from VdfTestUtils::CallbackNode
 CallbackNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs, ValueFunction *const cb)
 
virtual void Compute (const VdfContext &context) const override
 
- Public Member Functions inherited from VdfNode
 TF_MALLOC_TAG_NEW ("Vdf","new VdfNode")
 
VDF_API VdfNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 
VdfId GetId () const
 
const VdfNetworkGetNetwork () const
 
VdfNetworkGetNetwork ()
 
template<typename TYPE >
bool IsA () const
 
VDF_API bool IsEqual (const VdfNode &rhs) const
 
const VdfInputSpecsGetInputSpecs () const
 
const VdfInputGetInput (const TfToken &inputName) const
 
VDF_API VdfInputGetInput (const TfToken &inputName)
 
const InputMapIterator GetInputsIterator () const
 
bool HasInputConnections () const
 
bool HasOutputConnections () const
 
VDF_API VdfConnectionVector GetInputConnections () const
 
VDF_API VdfConnectionVector GetOutputConnections () const
 
const VdfOutputSpecsGetOutputSpecs () const
 
const VdfOutputGetOutput (const TfToken &name) const
 
VDF_API VdfOutputGetOutput (const TfToken &name)
 
VDF_API VdfOutputGetOptionalOutput (const TfToken &name)
 
const VdfOutputGetOptionalOutput (const TfToken &name) const
 
const VdfOutputGetOutput () const
 
VDF_API VdfOutputGetOutput ()
 
const OutputMapIterator GetOutputsIterator () const
 
size_t GetNumOutputs () const
 
size_t GetNumInputs () const
 
VDF_API void SetDebugName (const std::string &name)
 
template<class F >
void SetDebugNameCallback (F &&f)
 
VDF_API void SetDebugNameCallback (VdfNodeDebugNameCallback &&callback)
 
VDF_API const std::string GetDebugName () const
 
virtual VDF_API size_t GetMemoryUsage () const
 
virtual VDF_API bool IsSpeculationNode () const
 
virtual VDF_API
VdfRequiredInputsPredicate 
GetRequiredInputsPredicate (const VdfContext &context) const
 
VDF_API VdfMask ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 
VDF_API void ComputeOutputDependencyMasks (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, VdfMaskedOutputVector *outputDependencies) const
 
VDF_API VdfMask::Bits ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 
VDF_API VdfConnectionAndMaskVector ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 
VDF_API VdfConnectionAndMaskVector ComputeInputDependencyRequest (const VdfMaskedOutputVector &request) const
 

Protected Member Functions

virtual VdfMask::Bits _ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 
virtual VdfMask _ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 
- Protected Member Functions inherited from VdfTestUtils::CallbackNode
virtual ~CallbackNode ()
 
virtual bool _IsDerivedEqual (const VdfNode &rhs) const override
 
- Protected Member Functions inherited from VdfNode
VDF_API VdfNode (VdfNetwork *network)
 
VDF_API void _AppendInputs (const VdfInputSpecs &inputSpecs, std::vector< VdfInput * > *resultingInputs=NULL)
 
VDF_API void _AppendOutputs (const VdfOutputSpecs &outputSpecs, std::vector< VdfOutput * > *resultingOutputs=NULL)
 
virtual VDF_API void _DidAddInputConnection (const VdfConnection *c, int atIndex)
 
virtual VDF_API void _WillRemoveInputConnection (const VdfConnection *c)
 
virtual VDF_API ~VdfNode ()
 
void _SetId (const VdfVersion version, const VdfIndex index)
 
virtual VDF_API bool _ComputeOutputDependencyMasks (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, VdfMaskedOutputVector *outputDependencies) const
 
virtual VDF_API
VdfConnectionAndMaskVector 
_ComputeInputDependencyRequest (const VdfMaskedOutputVector &request) const
 
virtual VDF_API
VdfConnectionAndMaskVector 
_ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 
virtual VDF_API const
VdfInputAndOutputSpecs
_AcquireInputAndOutputSpecsPointer (const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 
virtual VDF_API void _ReleaseInputAndOutputSpecsPointer (const VdfInputAndOutputSpecs *specs)
 
VDF_API void _InitializeInputAndOutputSpecs (const VdfInputAndOutputSpecs *specs)
 
VDF_API void _ClearInputAndOutputSpecsPointer ()
 
VDF_API void _ReplaceInputSpecs (const VdfInputSpecs &inputSpecs)
 

Additional Inherited Members

- Static Public Member Functions inherited from VdfNode
static VdfIndex GetIndexFromId (const VdfId id)
 
static VdfVersion GetVersionFromId (const VdfId id)
 
- Static Protected Member Functions inherited from VdfNode
template<typename BaseClassType , typename ClassType >
static size_t _GetMemoryUsage (const ClassType &c, size_t dynamicSize)
 

Detailed Description

A CallbackNode which allows for passing in a custom input / output dependency callback.

Definition at line 138 of file testUtils.h.

Member Typedef Documentation

using VdfTestUtils::DependencyCallbackNode::InputDependencyFunction = std::function< VdfMask::Bits (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection)>

Definition at line 143 of file testUtils.h.

using VdfTestUtils::DependencyCallbackNode::OutputDependencyFunction = std::function< VdfMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output)>

Definition at line 148 of file testUtils.h.

Constructor & Destructor Documentation

VdfTestUtils::DependencyCallbackNode::DependencyCallbackNode ( VdfNetwork network,
const VdfInputSpecs inputSpecs,
const VdfOutputSpecs outputSpecs,
ValueFunction function,
const InputDependencyFunction inputDependencyFunction,
const OutputDependencyFunction outputDependencyFunction 
)
inline

Definition at line 150 of file testUtils.h.

Member Function Documentation

virtual VdfMask::Bits VdfTestUtils::DependencyCallbackNode::_ComputeInputDependencyMask ( const VdfMaskedOutput maskedOutput,
const VdfConnection inputConnection 
) const
inlineprotectedvirtual

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.

This is only called from ComputeInputDependencyMask(), to handle non-associated inputs.

The default implementation returns the connection mask on inputConnection, indicating that all elements are required. Derived classes can override this method in order to make the resulting dependencies more sparse.

This method should always return a mask that is a subset of the connection mask on inputConnection or an empty mask to indicate no dependencies.

Derived classes must ensure that this method is thread safe, in the sense that _ComputeInputDependencyMask() may be called simultaneously on a single node.

Reimplemented from VdfNode.

Definition at line 163 of file testUtils.h.

virtual VdfMask VdfTestUtils::DependencyCallbackNode::_ComputeOutputDependencyMask ( const VdfConnection inputConnection,
const VdfMask inputDependencyMask,
const VdfOutput output 
) const
inlineprotectedvirtual

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.

This is only called from ComputeOutputDependencyMask(), to handle non-associated inputs.

The default implementation does the following:

  • If output has an affects mask, the affects mask is returned, indicating that all affected elements depend on the input.
  • Otherwise, returns an all-ones mask, indicating that all elements depend on the input.

Derived classes can override this method in order to make the resulting dependencies more sparse.

Derived classes must ensure that this method is thread safe, in the sense that _ComputeOutputDependencyMask() may be called simultaneously on a single node.

Reimplemented from VdfNode.

Definition at line 175 of file testUtils.h.


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