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

An abstract base class for executors, which do not store any data at all. This class mainly serves the purpose of abstracting away error handling on dataless executors, when methods that are supposed to mutate data are called. More...

#include <datalessExecutor.h>

+ Inheritance diagram for VdfDatalessExecutor:

Public Member Functions

virtual VDF_API ~VdfDatalessExecutor ()
 
virtual VDF_API void SetOutputValue (const VdfOutput &output, const VdfVector &value, const VdfMask &mask) override
 
virtual VDF_API bool TakeOutputValue (const VdfOutput &output, VdfVector *value, const VdfMask &mask) override
 
virtual bool IsEmpty () const override
 
- Public Member Functions inherited from VdfExecutorInterface
 VdfExecutorInterface (const VdfExecutorInterface &)=delete
 
VdfExecutorInterfaceoperator= (const VdfExecutorInterface &)=delete
 
virtual VDF_API ~VdfExecutorInterface ()
 
VDF_API void Run (const VdfSchedule &schedule, VdfExecutorErrorLogger *errorLogger=NULL)
 
VDF_API void Run (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger=NULL)
 
virtual const
VdfExecutorFactoryBase
GetFactory () const =0
 
VDF_API void RegisterObserver (const VdfExecutorObserver *observer) const
 
VDF_API void UnregisterObserver (const VdfExecutorObserver *observer) const
 
virtual void Resize (const VdfNetwork &network)
 
const VdfVectorGetOutputValue (const VdfOutput &output, const VdfMask &mask) const
 
virtual void DuplicateOutputData (const VdfOutput &sourceOutput, const VdfOutput &destOutput)=0
 
const VdfExecutorInterfaceGetParentExecutor () const
 
VDF_API void SetParentExecutor (const VdfExecutorInterface *parentExecutor)
 
VDF_API void InvalidateValues (const VdfMaskedOutputVector &invalidationRequest)
 
VDF_API void InvalidateTopologicalState ()
 
VDF_API void ClearData ()
 
VDF_API void ClearDataForOutput (const VdfId outputId, const VdfId nodeId)
 
void IncrementExecutorInvalidationTimestamp ()
 
void InheritExecutorInvalidationTimestamp (const VdfExecutorInterface &executor)
 
VdfInvalidationTimestamp GetExecutorInvalidationTimestamp () const
 
virtual bool HasInvalidationTimestampMismatch (const VdfOutput &source, const VdfOutput &dest) const =0
 
void SetInterruptionFlag (const std::atomic_bool *interruptionFlag)
 
const std::atomic_bool * GetInterruptionFlag () const
 
bool HasBeenInterrupted () const
 
void SetExecutionStats (VdfExecutionStats *stats)
 
VdfExecutionStatsGetExecutionStats () const
 

Protected Member Functions

VDF_API VdfDatalessExecutor ()
 
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 void _ClearData () override
 
virtual void _UpdateInvalidationTimestamp () override
 
virtual VDF_API void _SetReferenceOutputValue (const VdfOutput &destOutput, const VdfOutput &sourceOutput, const VdfMask &sourceMask) const override
 
virtual void _TouchOutput (const VdfOutput &output) const override
 
- Protected Member Functions inherited from VdfExecutorInterface
VDF_API VdfExecutorInterface ()
 
VDF_API VdfExecutorInterface (const VdfExecutorInterface *parentExecutor)
 
virtual void _Run (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger)=0
 
virtual bool _IsOutputInvalid (const VdfId outputId, const VdfMask &invalidationMask) const =0
 
virtual bool _InvalidateOutput (const VdfOutput &output, const VdfMask &invalidationMask)=0
 
virtual bool _PreProcessInvalidation (const VdfMaskedOutputVector &invalidationRequest, VdfMaskedOutputVector *processedRequest)
 

Detailed Description

An abstract base class for executors, which do not store any data at all. This class mainly serves the purpose of abstracting away error handling on dataless executors, when methods that are supposed to mutate data are called.

Definition at line 32 of file datalessExecutor.h.

Constructor & Destructor Documentation

virtual VDF_API VdfDatalessExecutor::~VdfDatalessExecutor ( )
virtual

Destructor

VDF_API VdfDatalessExecutor::VdfDatalessExecutor ( )
protected

Protected default constructor

Member Function Documentation

virtual void VdfDatalessExecutor::_ClearData ( )
inlineoverrideprotectedvirtual

Clears all the data caches associated with any output in the network.

This has no effect on this type of executor.

Reimplemented from VdfExecutorInterface.

Reimplemented in EfMaskedSubExecutor.

Definition at line 111 of file datalessExecutor.h.

void VdfDatalessExecutor::_ClearDataForOutput ( const VdfId  outputId,
const VdfId  nodeId 
)
inlineoverrideprotectedvirtual

Clears the data for a specific output on this executor.

This has no effect on this type of executor.

Reimplemented from VdfExecutorInterface.

Definition at line 104 of file datalessExecutor.h.

virtual const VdfVector* VdfDatalessExecutor::_GetInputValue ( const VdfConnection connection,
const VdfMask mask 
) const
inlineoverrideprotectedvirtual

Returns a value for the cache that flows across connection.

Implements VdfExecutorInterface.

Definition at line 79 of file datalessExecutor.h.

virtual const VdfVector* VdfDatalessExecutor::_GetOutputValueForReading ( const VdfOutput output,
const VdfMask mask 
) const
inlineoverrideprotectedvirtual

Returns an output value for reading.

Implements VdfExecutorInterface.

Definition at line 87 of file datalessExecutor.h.

virtual VdfVector* VdfDatalessExecutor::_GetOutputValueForWriting ( const VdfOutput output) const
inlineoverrideprotectedvirtual

Returns an output value for writing.

Implements VdfExecutorInterface.

Definition at line 95 of file datalessExecutor.h.

virtual VDF_API void VdfDatalessExecutor::_SetReferenceOutputValue ( const VdfOutput destOutput,
const VdfOutput sourceOutput,
const VdfMask sourceMask 
) const
overrideprotectedvirtual

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

This is not supported on this type of executor.

Implements VdfExecutorInterface.

virtual void VdfDatalessExecutor::_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.

This has no effect on this type of executor.

Implements VdfExecutorInterface.

Definition at line 138 of file datalessExecutor.h.

virtual void VdfDatalessExecutor::_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.

This has no effect on this type of executor.

Implements VdfExecutorInterface.

Definition at line 119 of file datalessExecutor.h.

virtual bool VdfDatalessExecutor::IsEmpty ( ) const
inlineoverridevirtual

Returns true of the data manager is empty.

This type of executor is always considered empty, since it does not hold any data.

Implements VdfExecutorInterface.

Reimplemented in EfMaskedSubExecutor.

Definition at line 66 of file datalessExecutor.h.

virtual VDF_API void VdfDatalessExecutor::SetOutputValue ( const VdfOutput output,
const VdfVector value,
const VdfMask mask 
)
overridevirtual

Sets the cached value for a given output.

This is not supported on this type of executor.

Implements VdfExecutorInterface.

virtual VDF_API bool VdfDatalessExecutor::TakeOutputValue ( const VdfOutput output,
VdfVector value,
const VdfMask mask 
)
overridevirtual

Transfers ownership of value to the given output.

This is not supported on this type of executor.

Implements VdfExecutorInterface.


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