![]() |
|
An abstract base class for executors, which do not store any data at all. More...
#include <datalessExecutor.h>
Inheritance diagram for VdfDatalessExecutor:Public Member Functions | |
| virtual VDF_API | ~VdfDatalessExecutor () |
| Destructor. | |
| virtual VDF_API void | SetOutputValue (const VdfOutput &output, const VdfVector &value, const VdfMask &mask) |
Sets the cached value for a given output. | |
| virtual VDF_API bool | TakeOutputValue (const VdfOutput &output, VdfVector *value, const VdfMask &mask) |
Transfers ownership of value to the given output. | |
| virtual bool | IsEmpty () const |
Returns true of the data manager is empty. | |
Public Member Functions inherited from VdfExecutorInterface | |
| VdfExecutorInterface (const VdfExecutorInterface &)=delete | |
| Noncopyable. | |
| VdfExecutorInterface & | operator= (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. | |
| virtual const VdfExecutorFactoryBase & | GetFactory () const =0 |
| Returns a factory class facilitating the construction of new executors that share traits with this executor instance. | |
| 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(). | |
| virtual void | Resize (const VdfNetwork &network) |
Resize the executor to accomodate data for the given network. | |
| const VdfVector * | GetOutputValue (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. | |
| virtual void | DuplicateOutputData (const VdfOutput &sourceOutput, const VdfOutput &destOutput)=0 |
Duplicates the output data associated with sourceOutput and copies it to destOutput. | |
| const VdfExecutorInterface * | GetParentExecutor () 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. | |
| virtual bool | HasInvalidationTimestampMismatch (const VdfOutput &source, const VdfOutput &dest) const =0 |
Returns true, if the invalidation timestamps between the source and dest outputs do not match, i.e. | |
| 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. | |
| VdfExecutionStats * | GetExecutionStats () const |
| Returns the Execution Stats object, if any. | |
Protected Member Functions | |
| VDF_API | VdfDatalessExecutor () |
| Protected default constructor. | |
| virtual const VdfVector * | _GetInputValue (const VdfConnection &connection, const VdfMask &mask) const override |
Returns a 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 void | _ClearData () |
| Clears all the data caches associated with any output in the network. | |
| virtual void | _UpdateInvalidationTimestamp () |
| Called before invalidation begins to update the timestamp that will be written for every VdfOutput visited during invalidation. | |
| virtual VDF_API 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 |
| 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. | |
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.
|
virtual |
Destructor.
|
protected |
Protected default constructor.
|
inlineprotectedvirtual |
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.
|
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.
|
inlineoverrideprotectedvirtual |
Returns a value for the cache that flows across connection.
Implements VdfExecutorInterface.
Definition at line 79 of file datalessExecutor.h.
|
inlineoverrideprotectedvirtual |
Returns an output value for reading.
Implements VdfExecutorInterface.
Definition at line 87 of file datalessExecutor.h.
|
inlineoverrideprotectedvirtual |
Returns an output value for writing.
Implements VdfExecutorInterface.
Definition at line 95 of file datalessExecutor.h.
|
protectedvirtual |
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.
|
inlineprotectedvirtual |
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.
|
inlineprotectedvirtual |
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.
|
inlinevirtual |
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 |
Sets the cached value for a given output.
This is not supported on this type of executor.
Implements VdfExecutorInterface.
|
virtual |
Transfers ownership of value to the given output.
This is not supported on this type of executor.
Implements VdfExecutorInterface.