7#ifndef PXR_EXEC_EXEC_REQUEST_IMPL_H
8#define PXR_EXEC_EXEC_REQUEST_IMPL_H
12#include "pxr/exec/exec/api.h"
13#include "pxr/exec/exec/request.h"
16#include "pxr/base/tf/bits.h"
17#include "pxr/base/tf/pxrTslRobinMap/robin_map.h"
25PXR_NAMESPACE_OPEN_SCOPE
28struct Exec_AttributeValueInvalidationResult;
30struct Exec_DisconnectedInputsInvalidationResult;
31struct Exec_MetadataInvalidationResult;
32class Exec_TimeChangeInvalidationResult;
33class Exec_ValueExtractor;
36template <
typename>
class TfSpan;
53 const Exec_AttributeValueInvalidationResult &invalidationResult);
59 const Exec_MetadataInvalidationResult &invalidationResult);
65 const Exec_DisconnectedInputsInvalidationResult &invalidationResult);
69 const Exec_TimeChangeInvalidationResult &invalidationResult);
82 ExecRequestComputedValueInvalidationCallback &&valueCallback,
83 ExecRequestTimeChangeInvalidationCallback &&timeCallback);
130 void _BuildLeafNodeToIndexMap();
135 void _InvalidateLeafOutputs(
136 bool isNewlyInvalidInterval,
145 std::vector<VdfMaskedOutput> _leafOutputs;
148 std::vector<Exec_ValueExtractor> _extractors;
155 std::unique_ptr<VdfRequest> _computeRequest;
158 std::unique_ptr<VdfSchedule> _schedule;
164 TfBits _lastInvalidatedIndices;
167 ExecRequestComputedValueInvalidationCallback _valueCallback;
170 ExecRequestTimeChangeInvalidationCallback _timeCallback;
173PXR_NAMESPACE_CLOSE_SCOPE
A class that represents a point in time for execution.
A class that represents an interval in EfTime.
A view into values cached by ExecSystem.
Contains data structures necessary to implement exec requests that are independent of scene descripti...
EXEC_API void _Schedule()
Builds the schedule for the request.
void DidInvalidateComputedValues(const Exec_AttributeValueInvalidationResult &invalidationResult)
Notify the request of invalid computed values as a consequence of attribute authored value invalidati...
void Expire()
Expires all request indices and discards the request.
EXEC_API Exec_CacheView _Compute()
Computes the value keys in the request.
EXEC_API void _ExpireIndices(const ExecRequestIndexSet &expired)
Expires the indices in expired.
EXEC_API void _Discard()
Removes the request from the system.
void DidChangeTime(const Exec_TimeChangeInvalidationResult &invalidationResult)
Notify the request of time having changed.
void DidInvalidateComputedValues(const Exec_DisconnectedInputsInvalidationResult &invalidationResult)
Notify the request of invalid computed values as a consequence of uncompilation.
EXEC_API bool _RequiresCompilation() const
Returns true if the request needs to be compiled.
void DidInvalidateComputedValues(const Exec_MetadataInvalidationResult &invalidationResult)
Notify the request of invalid computed values as a consequence of metadata authored value invalidatio...
EXEC_API void _Compile(TfSpan< const ExecValueKey > valueKeys)
Compiles outputs for the value keys in the request.
Base implementation of a system to procedurally compute values based on scene description and computa...
Specifies a computed value.
Fast bit array that keeps track of the number of bits set and can find the next set in a timely manne...
Represents a range of contiguous elements.
Contains a specification of how to execute a particular VdfNetwork.
Implementation of a hash map using open-addressing and the robin hood hashing algorithm with backward...
Implementation of a hash set using open-addressing and the robin hood hashing algorithm with backward...
This file contains definitions for trivial types, including type aliases, so that source files that r...