Loading...
Searching...
No Matches
VdfDataManagerBasedExecutor< DataManagerType, BaseClass > Class Template Reference

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)
 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.
 

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)
 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 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

◆ VdfDataManagerBasedExecutor() [1/2]

Default constructor.

Definition at line 37 of file dataManagerBasedExecutor.h.

◆ VdfDataManagerBasedExecutor() [2/2]

VdfDataManagerBasedExecutor ( const VdfExecutorInterface parentExecutor)
inlineexplicit

Construct with a parent executor.

Definition at line 41 of file dataManagerBasedExecutor.h.

◆ ~VdfDataManagerBasedExecutor()

virtual ~VdfDataManagerBasedExecutor ( )
inlinevirtual

Destructor.

Definition at line 48 of file dataManagerBasedExecutor.h.

Member Function Documentation

◆ _ClearDataForOutput()

void _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.

◆ _GetInputValue()

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

Returns value for the cache that flows across connection.

Reimplemented in EfPageCacheBasedExecutor< EngineType, DataManagerType >.

Definition at line 107 of file dataManagerBasedExecutor.h.

◆ _GetOutputValueForReading()

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

Returns an output value for reading.

Reimplemented in EfPageCacheBasedExecutor< EngineType, DataManagerType >.

Definition at line 115 of file dataManagerBasedExecutor.h.

◆ _GetOutputValueForWriting()

virtual VdfVector * _GetOutputValueForWriting ( const VdfOutput output) const
inlineoverrideprotectedvirtual

Returns an output value for writing.

Definition at line 124 of file dataManagerBasedExecutor.h.

◆ _InvalidateOutput()

virtual bool _InvalidateOutput ( const VdfOutput output,
const VdfMask invalidationMask 
)
inlineprotectedvirtual

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.

◆ _IsOutputInvalid()

virtual bool _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.

◆ _SetReferenceOutputValue()

virtual void _SetReferenceOutputValue ( const VdfOutput destOutput,
const VdfOutput sourceOutput,
const VdfMask sourceMask 
) const
inlineprotectedvirtual

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.

◆ _TouchOutput()

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

◆ _UpdateInvalidationTimestamp()

virtual void _UpdateInvalidationTimestamp ( )
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.

Definition at line 167 of file dataManagerBasedExecutor.h.

◆ DuplicateOutputData()

virtual void DuplicateOutputData ( const VdfOutput sourceOutput,
const VdfOutput destOutput 
)
inlinevirtual

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

Definition at line 80 of file dataManagerBasedExecutor.h.

◆ HasInvalidationTimestampMismatch()

virtual bool HasInvalidationTimestampMismatch ( const VdfOutput source,
const VdfOutput dest 
) const
inlinevirtual

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.

◆ IsEmpty()

virtual bool IsEmpty ( ) const
inlinevirtual

Returns true of the data manager is empty.

Definition at line 88 of file dataManagerBasedExecutor.h.

◆ Resize()

virtual void Resize ( const VdfNetwork network)
inlineoverridevirtual

Resize the executor data manager to accommodate the given network.

Definition at line 52 of file dataManagerBasedExecutor.h.

◆ SetOutputValue()

virtual void SetOutputValue ( const VdfOutput output,
const VdfVector value,
const VdfMask mask 
)
inlinevirtual

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.

◆ TakeOutputValue()

virtual bool TakeOutputValue ( const VdfOutput output,
VdfVector value,
const VdfMask mask 
)
inlinevirtual

Transfers the value to the given output.

Reimplemented in VdfSpeculationExecutor< EngineType, DataManagerType >.

Definition at line 70 of file dataManagerBasedExecutor.h.

Member Data Documentation

◆ _dataManager

DataManagerType _dataManager
protected

Definition at line 204 of file dataManagerBasedExecutor.h.


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