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

#include <extensibleNode.h>

+ Inheritance diagram for VdfExtensibleNode:

Public Member Functions

VDF_API VdfExtensibleNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 
VDF_API void AddOutputSpecs (const VdfOutputSpecs &specs, std::vector< VdfOutput * > *resultOutputs)
 
VDF_API void AddInputSpecs (const VdfInputSpecs &specs, std::vector< VdfInput * > *resultInputs)
 
- 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 void Compute (const VdfContext &context) const =0
 
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 VDF_API const
VdfInputAndOutputSpecs
_AcquireInputAndOutputSpecsPointer (const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 
virtual VDF_API void _ReleaseInputAndOutputSpecsPointer (const VdfInputAndOutputSpecs *specs)
 
virtual VDF_API ~VdfExtensibleNode ()
 
- 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 bool _IsDerivedEqual (const VdfNode &rhs) const
 
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 VdfMask _ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 
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 VdfMask::Bits _ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 
virtual VDF_API
VdfConnectionAndMaskVector 
_ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 
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

Base class for nodes that support dynamic creation of input and output connectors.

Definition at line 32 of file extensibleNode.h.

Constructor & Destructor Documentation

VDF_API VdfExtensibleNode::VdfExtensibleNode ( VdfNetwork network,
const VdfInputSpecs inputSpecs,
const VdfOutputSpecs outputSpecs 
)
virtual VDF_API VdfExtensibleNode::~VdfExtensibleNode ( )
protectedvirtual

Member Function Documentation

virtual VDF_API const VdfInputAndOutputSpecs* VdfExtensibleNode::_AcquireInputAndOutputSpecsPointer ( const VdfInputSpecs inputSpecs,
const VdfOutputSpecs outputSpecs 
)
protectedvirtual

Gets an input/output specs pointer that the node can use. In the case of VdfExtensibleNodes, we manage the storage for the input/output specs as a member of node itself.

Reimplemented from VdfNode.

virtual VDF_API void VdfExtensibleNode::_ReleaseInputAndOutputSpecsPointer ( const VdfInputAndOutputSpecs specs)
protectedvirtual

Releases an input/output specs pointer that was acquired with a previous call to _AcquireInputAndOutputSpecsPointer(). This is a no-op for VdfExtensibleNode.

Reimplemented from VdfNode.

VDF_API void VdfExtensibleNode::AddInputSpecs ( const VdfInputSpecs specs,
std::vector< VdfInput * > *  resultInputs 
)

Appends the supplied specs to this node, and creates and stores additional inputs from them. A vector of VdfInput* of the same size as specs is the result.

VDF_API void VdfExtensibleNode::AddOutputSpecs ( const VdfOutputSpecs specs,
std::vector< VdfOutput * > *  resultOutputs 
)

Appends the supplied specs to this node, and creates and stores additional outputs from them. A vector of VdfOutput* of the same size as specs is the result.


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