Loading...
Searching...
No Matches
EfExecutor< EngineType, DataManagerType > Class Template Reference

Executes a VdfNetwork to compute a requested set of values. More...

#include <executor.h>

+ Inheritance diagram for EfExecutor< EngineType, DataManagerType >:

Public Member Functions

 EfExecutor ()
 Default constructor.
 
virtual ~EfExecutor ()
 Destructor.
 
virtual const VdfExecutorFactoryBase & GetFactory () const override final
 Factory construction.
 
- Public Member Functions inherited from VdfDataManagerBasedExecutor< DataManagerType, VdfExecutorInterface >
 VdfDataManagerBasedExecutor ()
 Default constructor.
 
 VdfDataManagerBasedExecutor (const VdfExecutorInterface *parentExecutor)
 Construct with a parent executor.
 
virtual ~VdfDataManagerBasedExecutor ()
 Destructor.
 
virtual void Resize (const VdfNetwork &network) override
 Resize the executor data manager to accommodate the given network.
 
virtual void SetOutputValue (const VdfOutput &output, const VdfVector &value, const VdfMask &mask)
 Sets the cached value for a given output.
 
virtual bool TakeOutputValue (const VdfOutput &output, VdfVector *value, const VdfMask &mask)
 Transfers the value to the given output.
 
virtual void DuplicateOutputData (const VdfOutput &sourceOutput, const VdfOutput &destOutput)
 Duplicates the output data associated with sourceOutput and copies it to destOutput.
 
virtual bool IsEmpty () const
 Returns true of the data manager is empty.
 
virtual bool HasInvalidationTimestampMismatch (const VdfOutput &source, const VdfOutput &dest) const
 Returns true, if the invalidation timestamps between the source and dest outputs do not match, i.e.
 
- Public Member Functions inherited from VdfExecutorInterface
 VdfExecutorInterface (const VdfExecutorInterface &)=delete
 Noncopyable.
 
VdfExecutorInterfaceoperator= (const VdfExecutorInterface &)=delete
 
virtual VDF_API ~VdfExecutorInterface ()
 Destructor.
 
VDF_API void Run (const VdfSchedule &schedule, VdfExecutorErrorLogger *errorLogger=NULL)
 Executes the schedule.
 
VDF_API void Run (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger=NULL)
 Executes the schedule.
 
VDF_API void RegisterObserver (const VdfExecutorObserver *observer) const
 Can be called by clients to register a VdfExecutorObserver with this executor.
 
VDF_API void UnregisterObserver (const VdfExecutorObserver *observer) const
 Must be called by clients to unregister a VdfExecutorObserver, which has been previously registered with RegisterObserver().
 
const VdfVectorGetOutputValue (const VdfOutput &output, const VdfMask &mask) const
 Returns the cached value for a given output if it has a cache that contains all values specified by mask.
 
const VdfExecutorInterfaceGetParentExecutor () const
 Returns the parent executor, if any.
 
VDF_API void SetParentExecutor (const VdfExecutorInterface *parentExecutor)
 Sets the parent executor.
 
VDF_API void InvalidateValues (const VdfMaskedOutputVector &invalidationRequest)
 Invalidates the network, starting from the masked outputs in request.
 
VDF_API void InvalidateTopologicalState ()
 Invalidate all state depending on network topology.
 
VDF_API void ClearData ()
 Clears the executors buffers.
 
VDF_API void ClearDataForOutput (const VdfId outputId, const VdfId nodeId)
 Clears the executor buffers for a specific output.
 
void IncrementExecutorInvalidationTimestamp ()
 Increment this executor's invalidation timestamp for mung buffer locking.
 
void InheritExecutorInvalidationTimestamp (const VdfExecutorInterface &executor)
 Inherit the invalidation timestamp from another executor.
 
VdfInvalidationTimestamp GetExecutorInvalidationTimestamp () const
 Returns this executor's invalidation timestamp.
 
void SetInterruptionFlag (const std::atomic_bool *interruptionFlag)
 Set the interruption flag.
 
const std::atomic_bool * GetInterruptionFlag () const
 Returns the interruption flag.
 
bool HasBeenInterrupted () const
 Returns whether or not the executor has been interrupted, if the executor supports interruption.
 
void SetExecutionStats (VdfExecutionStats *stats)
 Sets an execution stats object.
 
VdfExecutionStatsGetExecutionStats () const
 Returns the Execution Stats object, if any.
 

Additional Inherited Members

- Protected Member Functions inherited from VdfDataManagerBasedExecutor< DataManagerType, VdfExecutorInterface >
virtual const VdfVector_GetInputValue (const VdfConnection &connection, const VdfMask &mask) const override
 Returns value for the cache that flows across connection.
 
virtual const VdfVector_GetOutputValueForReading (const VdfOutput &output, const VdfMask &mask) const override
 Returns an output value for reading.
 
virtual VdfVector_GetOutputValueForWriting (const VdfOutput &output) const override
 Returns an output value for writing.
 
void _ClearDataForOutput (const VdfId outputId, const VdfId nodeId) override
 Clears the data for a specific output on this executor.
 
virtual bool _IsOutputInvalid (const VdfId outputId, const VdfMask &invalidationMask) const override
 Returns true if the output is already invalid for the given invalidationMask.
 
virtual bool _InvalidateOutput (const VdfOutput &output, const VdfMask &invalidationMask)
 Called during invalidation to mark outputs as invalid and determine when the traversal can terminate early.
 
virtual void _UpdateInvalidationTimestamp ()
 Called before invalidation begins to update the timestamp that will be written for every VdfOutput visited during invalidation.
 
virtual void _SetReferenceOutputValue (const VdfOutput &destOutput, const VdfOutput &sourceOutput, const VdfMask &sourceMask) const
 Called to set destOutput's buffer output to be a reference to the buffer output of sourceOutput.
 
virtual void _TouchOutput (const VdfOutput &output) const override
 Mark the output as having been visited.
 
- Protected Member Functions inherited from VdfExecutorInterface
VDF_API VdfExecutorInterface ()
 Protected default constructor.
 
VDF_API VdfExecutorInterface (const VdfExecutorInterface *parentExecutor)
 Construct with a parent executor.
 
virtual void _Run (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger)=0
 Run this executor with the given schedule and request.
 
virtual const VdfVector_GetInputValue (const VdfConnection &connection, const VdfMask &mask) const =0
 Returns a value for the cache that flows across connection.
 
virtual const VdfVector_GetOutputValueForReading (const VdfOutput &output, const VdfMask &mask) const =0
 Returns an output value for reading.
 
virtual VdfVector_GetOutputValueForWriting (const VdfOutput &output) const =0
 Returns an output value for writing.
 
virtual bool _IsOutputInvalid (const VdfId outputId, const VdfMask &invalidationMask) const =0
 Returns true if the output is already invalid for the given invalidationMask.
 
virtual bool _InvalidateOutput (const VdfOutput &output, const VdfMask &invalidationMask)=0
 Called during invalidation to mark outputs as invalid and determine when the traversal can terminate early.
 
virtual bool _PreProcessInvalidation (const VdfMaskedOutputVector &invalidationRequest, VdfMaskedOutputVector *processedRequest)
 This method is called as a pre-processing step before an InvalidateValues() call.
 
virtual void _UpdateInvalidationTimestamp ()=0
 Called before invalidation begins to update the timestamp that will be written for every VdfOutput visited during invalidation.
 
virtual VDF_API void _ClearData ()
 Virtual implementation of the ClearData call.
 
virtual VDF_API void _ClearDataForOutput (const VdfId outputId, const VdfId nodeId)
 Virtual implementation of the ClearDataForOutput call.
 
virtual void _SetReferenceOutputValue (const VdfOutput &destOutput, const VdfOutput &sourceOutput, const VdfMask &sourceMask) const =0
 Called to set destOutput's buffer output to be a reference to the buffer output of sourceOutput.
 
virtual void _TouchOutput (const VdfOutput &output) const =0
 Mark the output as having been visited.
 
- Protected Attributes inherited from VdfDataManagerBasedExecutor< DataManagerType, VdfExecutorInterface >
DataManagerType _dataManager
 

Detailed Description

template<template< typename > class EngineType, typename DataManagerType>
class EfExecutor< EngineType, DataManagerType >

Executes a VdfNetwork to compute a requested set of values.

Definition at line 39 of file executor.h.

Constructor & Destructor Documentation

◆ EfExecutor()

EfExecutor ( )
inline

Default constructor.

Definition at line 64 of file executor.h.

◆ ~EfExecutor()

virtual ~EfExecutor ( )
inlinevirtual

Destructor.

Definition at line 68 of file executor.h.

Member Function Documentation

◆ GetFactory()

virtual const VdfExecutorFactoryBase & GetFactory ( ) const
inlinefinaloverridevirtual

Factory construction.

Implements VdfExecutorInterface.

Definition at line 72 of file executor.h.


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