![]() |
|
Base class for executors that use a data manager. More...
#include <dataManagerBasedExecutor.h>
Inherits BaseClass.
Inherited by VdfDataManagerBasedSubExecutor< DataManagerType, VdfExecutorInterface >, VdfDataManagerBasedSubExecutor< DataManagerType, VdfSpeculationExecutorBase >, and VdfDataManagerBasedSubExecutor< DataManagerType, BaseClass >.
Public Member Functions | |
| 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) override |
Sets the cached value for a given output. | |
| virtual bool | TakeOutputValue (const VdfOutput &output, VdfVector *value, const VdfMask &mask) override |
Transfers the value to the given output. | |
| virtual void | DuplicateOutputData (const VdfOutput &sourceOutput, const VdfOutput &destOutput) override |
Duplicates the output data associated with sourceOutput and copies it to destOutput. | |
| virtual bool | IsEmpty () const override |
Returns true of the data manager is empty. | |
| virtual bool | HasInvalidationTimestampMismatch (const VdfOutput &source, const VdfOutput &dest) const override |
Returns true, if the invalidation timestamps between the source and dest outputs do not match, i.e. | |
Protected Member Functions | |
| 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) override |
| Called during invalidation to mark outputs as invalid and determine when the traversal can terminate early. | |
| virtual void | _UpdateInvalidationTimestamp () override |
| 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 override |
| 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 Attributes | |
| DataManagerType | _dataManager |
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.
|
inline |
Default constructor.
Definition at line 37 of file dataManagerBasedExecutor.h.
|
inlineexplicit |
Construct with a parent executor.
Definition at line 41 of file dataManagerBasedExecutor.h.
|
inlinevirtual |
Destructor.
Definition at line 48 of file dataManagerBasedExecutor.h.
Clears the data for a specific output on this executor.
Definition at line 132 of file dataManagerBasedExecutor.h.
|
inlineoverrideprotectedvirtual |
Returns value for the cache that flows across connection.
Reimplemented in EfPageCacheBasedExecutor< EngineType, DataManagerType >.
Definition at line 107 of file dataManagerBasedExecutor.h.
|
inlineoverrideprotectedvirtual |
Returns an output value for reading.
Reimplemented in EfPageCacheBasedExecutor< EngineType, DataManagerType >.
Definition at line 115 of file dataManagerBasedExecutor.h.
|
inlineoverrideprotectedvirtual |
Returns an output value for writing.
Definition at line 124 of file dataManagerBasedExecutor.h.
|
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.
|
inlineoverrideprotectedvirtual |
Returns true if the output is already invalid for the given invalidationMask.
Definition at line 140 of file dataManagerBasedExecutor.h.
|
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.
|
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.
|
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.
|
inlineoverridevirtual |
Duplicates the output data associated with sourceOutput and copies it to destOutput.
Definition at line 80 of file dataManagerBasedExecutor.h.
|
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.
|
inlineoverridevirtual |
Returns true of the data manager is empty.
Definition at line 88 of file dataManagerBasedExecutor.h.
|
inlineoverridevirtual |
Resize the executor data manager to accommodate the given network.
Definition at line 52 of file dataManagerBasedExecutor.h.
|
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 EfPageCacheBasedExecutor< EngineType, DataManagerType >, and VdfSpeculationExecutor< EngineType, DataManagerType >.
Definition at line 61 of file dataManagerBasedExecutor.h.
|
inlineoverridevirtual |
Transfers the value to the given output.
Reimplemented in VdfSpeculationExecutor< EngineType, DataManagerType >.
Definition at line 70 of file dataManagerBasedExecutor.h.
|
protected |
Definition at line 204 of file dataManagerBasedExecutor.h.