7 #ifndef PXR_EXEC_EF_LOFTED_OUTPUT_SET_H
8 #define PXR_EXEC_EF_LOFTED_OUTPUT_SET_H
16 #include <tbb/concurrent_hash_map.h>
46 return _loftedOutputs.size();
92 using _LoftedOutputsMap = tbb::concurrent_hash_map<VdfId, VdfMask>;
93 _LoftedOutputsMap _loftedOutputs;
97 std::unique_ptr<std::atomic<uint32_t>[]> _loftedNodeRefs;
101 size_t _numLoftedNodeRefs = 0;
size_t GetSize() const
Returns the number of outputs lofted into the page cache.
#define PXR_NAMESPACE_OPEN_SCOPE
EF_API bool Add(const VdfOutput &output, const VdfMask &mask)
A VdfMask is placed on connections to specify the data flowing through them.
EF_API void CollectLoftedDependencies(const VdfOutputToMaskMap &deps, VdfMaskedOutputVector *processedRequest) const
Inserts any lofted outputs in deps into processedRequest.
EF_API ~Ef_LoftedOutputSet()
EF_API void RemoveAllOutputsForNode(const VdfNode &node)
Removes all outputs on node from the set of lofted outputs.
std::unordered_map< const VdfOutput *, VdfMask, TfHash > VdfOutputToMaskMap
A map from output pointer to mask.
Class to hold on to an externally owned output and a mask.
EF_API void Clear()
Removes all outputs from the set of lofted outputs.
#define PXR_NAMESPACE_CLOSE_SCOPE
EF_API void Resize(const VdfNetwork &network)
EF_API Ef_LoftedOutputSet()
EF_API void Remove(const VdfId outputId, const VdfId nodeId, const VdfMask &mask)
Removes an output from the set of lofted outputs.
std::vector< VdfMaskedOutput > VdfMaskedOutputVector
uint64_t VdfId
The unique identifier type for Vdf objects.