7#ifndef PXR_EXEC_VDF_VECTOR_IMPL_BOXED_H
8#define PXR_EXEC_VDF_VECTOR_IMPL_BOXED_H
12#include "pxr/exec/vdf/api.h"
13#include "pxr/exec/vdf/vectorDataTyped.h"
15#include "pxr/exec/vdf/boxedContainer.h"
17#include "pxr/exec/vdf/forEachCommonType.h"
22PXR_NAMESPACE_OPEN_SCOPE
28 :
public Vdf_VectorDataTyped<T>
37 : _box(std::move(box))
92 size_t GetSize()
const override {
96 size_t GetNumStoredElements()
const override {
100 bool IsSharable()
const override {
101 return _box.size() >= Vdf_VectorData::_VectorSharingSize;
104 size_t EstimateElementMemory()
const override {
112 _box.GetRanges().GetNumRanges();
117 Vdf_VectorData::Info GetInfo()
override {
118 return Vdf_VectorData::Info(
124 Vdf_VectorData::Info::Layout::Boxed);
132#define VDF_DECLARE_EXTERN_VECTOR_IMPL_BOXED(type) \
133 extern template class VDF_API_TYPE Vdf_VectorImplBoxed<type>;
134VDF_FOR_EACH_COMMON_TYPE(VDF_DECLARE_EXTERN_VECTOR_IMPL_BOXED)
135#undef VDF_DECLARE_EXTERN_VECTOR_IMPL_BOXED
137PXR_NAMESPACE_CLOSE_SCOPE
Fast, compressed bit array which is capable of performing logical operations without first decompress...
size_t GetSize() const
Returns the size of the bit array, ie.
bool AreAllSet() const
Returns true, if all the bits in this bit array are set.
This simple container stores multiple values that flow through the network as a single data flow elem...
A range of data elements as denoted by [ begin, end ) indices.
void New(Args &&... args)
Creates an instance.
void Destroy()
Destroys a held instance.
Implements a Vdf_VectorData storage that holds a boxed element.
Implements a Vdf_VectorData storage that is always empty.
A VdfMask is placed on connections to specify the data flowing through them.
size_t VdfEstimateSize(const T &)
Estimate the memory footprint of instance t of type T.