HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VdfDataManagerBasedExecutor< DataManagerType, BaseClass > Class Template Reference

#include <dataManagerBasedExecutor.h>

+ Inheritance diagram for VdfDataManagerBasedExecutor< DataManagerType, BaseClass >:

Public Member Functions

 VdfDataManagerBasedExecutor ()
 
 VdfDataManagerBasedExecutor (const VdfExecutorInterface *parentExecutor)
 
virtual ~VdfDataManagerBasedExecutor ()
 
virtual void Resize (const VdfNetwork &network) override
 
virtual void SetOutputValue (const VdfOutput &output, const VdfVector &value, const VdfMask &mask) override
 
virtual bool TakeOutputValue (const VdfOutput &output, VdfVector *value, const VdfMask &mask) override
 
virtual void DuplicateOutputData (const VdfOutput &sourceOutput, const VdfOutput &destOutput) override
 
virtual bool IsEmpty () const override
 
virtual bool HasInvalidationTimestampMismatch (const VdfOutput &source, const VdfOutput &dest) const override
 

Protected Member Functions

virtual const VdfVector_GetInputValue (const VdfConnection &connection, const VdfMask &mask) const override
 
virtual const VdfVector_GetOutputValueForReading (const VdfOutput &output, const VdfMask &mask) const override
 
virtual VdfVector_GetOutputValueForWriting (const VdfOutput &output) const override
 
void _ClearDataForOutput (const VdfId outputId, const VdfId nodeId) override
 
virtual bool _IsOutputInvalid (const VdfId outputId, const VdfMask &invalidationMask) const override
 
virtual bool _InvalidateOutput (const VdfOutput &output, const VdfMask &invalidationMask) override
 
virtual void _UpdateInvalidationTimestamp () override
 
virtual void _SetReferenceOutputValue (const VdfOutput &destOutput, const VdfOutput &sourceOutput, const VdfMask &sourceMask) const override
 
virtual void _TouchOutput (const VdfOutput &output) const override
 

Protected Attributes

DataManagerType _dataManager
 

Detailed Description

template<typename DataManagerType, typename BaseClass>
class VdfDataManagerBasedExecutor< DataManagerType, BaseClass >

Base class for executors that use a data manager.

This implements much of the API from VdfExecutorInterface that simply passes the work on to a data manager.

Definition at line 31 of file dataManagerBasedExecutor.h.

Constructor & Destructor Documentation

template<typename DataManagerType, typename BaseClass>
VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::VdfDataManagerBasedExecutor ( )
inline

Default constructor.

Definition at line 37 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::VdfDataManagerBasedExecutor ( const VdfExecutorInterface parentExecutor)
inlineexplicit

Construct with a parent executor.

Definition at line 41 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::~VdfDataManagerBasedExecutor ( )
inlinevirtual

Destructor.

Definition at line 48 of file dataManagerBasedExecutor.h.

Member Function Documentation

template<typename DataManagerType, typename BaseClass>
void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_ClearDataForOutput ( const VdfId  outputId,
const VdfId  nodeId 
)
inlineoverrideprotected

Clears the data for a specific output on this executor.

Definition at line 132 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual const VdfVector* VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_GetInputValue ( const VdfConnection connection,
const VdfMask mask 
) const
inlineoverrideprotectedvirtual
template<typename DataManagerType, typename BaseClass>
virtual const VdfVector* VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_GetOutputValueForReading ( const VdfOutput output,
const VdfMask mask 
) const
inlineoverrideprotectedvirtual
template<typename DataManagerType, typename BaseClass>
virtual VdfVector* VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_GetOutputValueForWriting ( const VdfOutput output) const
inlineoverrideprotectedvirtual

Returns an output value for writing.

Definition at line 124 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual bool VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_InvalidateOutput ( const VdfOutput output,
const VdfMask invalidationMask 
)
inlineoverrideprotectedvirtual

Called during invalidation to mark outputs as invalid and determine when the traversal can terminate early.

incomingInput is the VdfInput by which this output was reached during invalidation traversal, or NULL if output is one of the first-traversed outputs.

Returns true if there was anything to invalidate and false if output was already invalid.

Definition at line 156 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual bool VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_IsOutputInvalid ( const VdfId  outputId,
const VdfMask invalidationMask 
) const
inlineoverrideprotectedvirtual

Returns true if the output is already invalid for the given invalidationMask.

Definition at line 140 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_SetReferenceOutputValue ( const VdfOutput destOutput,
const VdfOutput sourceOutput,
const VdfMask sourceMask 
) const
inlineoverrideprotectedvirtual

Called to set destOutput's buffer output to be a reference to the buffer output of sourceOutput.

Definition at line 176 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_TouchOutput ( const VdfOutput output) const
inlineoverrideprotectedvirtual

Mark the output as having been visited. This is only to be used by the speculation engine to tell its parent executor that an output has been visited and should be marked for invalidation.

Definition at line 194 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_UpdateInvalidationTimestamp ( )
inlineoverrideprotectedvirtual

Called before invalidation begins to update the timestamp that will be written for every VdfOutput visited during invalidation. This timestamp is later used to identify outputs for mung buffer locking.

Definition at line 167 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::DuplicateOutputData ( const VdfOutput sourceOutput,
const VdfOutput destOutput 
)
inlineoverridevirtual

Duplicates the output data associated with sourceOutput and copies it to destOutput.

Definition at line 80 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual bool VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::HasInvalidationTimestampMismatch ( const VdfOutput source,
const VdfOutput dest 
) const
inlineoverridevirtual

Returns true, if the invalidation timestamps between the source and dest outputs do not match, i.e. the source output should be mung buffer locked.

Definition at line 95 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual bool VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::IsEmpty ( ) const
inlineoverridevirtual

Returns true of the data manager is empty.

Definition at line 88 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::Resize ( const VdfNetwork network)
inlineoverridevirtual

Resize the executor data manager to accommodate the given network.

Definition at line 52 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual void VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::SetOutputValue ( const VdfOutput output,
const VdfVector value,
const VdfMask mask 
)
inlineoverridevirtual

Sets the cached value for a given output.

If the output already contains data, it will be merged with the new data as indicated by value and mask.

Reimplemented in VdfSpeculationExecutor< EngineType, DataManagerType >, and EfPageCacheBasedExecutor< EngineType, DataManagerType >.

Definition at line 61 of file dataManagerBasedExecutor.h.

template<typename DataManagerType, typename BaseClass>
virtual bool VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::TakeOutputValue ( const VdfOutput output,
VdfVector value,
const VdfMask mask 
)
inlineoverridevirtual

Transfers the value to the given output.

Reimplemented in VdfSpeculationExecutor< EngineType, DataManagerType >.

Definition at line 70 of file dataManagerBasedExecutor.h.

Member Data Documentation

template<typename DataManagerType, typename BaseClass>
DataManagerType VdfDataManagerBasedExecutor< DataManagerType, BaseClass >::_dataManager
protected

Definition at line 204 of file dataManagerBasedExecutor.h.


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