HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Vdf_VectorImplContiguous< TYPE > Class Template Reference

#include <vectorDataTyped.h>

+ Inheritance diagram for Vdf_VectorImplContiguous< TYPE >:

Public Member Functions

 Vdf_VectorImplContiguous (size_t size)
 
 Vdf_VectorImplContiguous (size_t size, size_t first, size_t last)
 
 Vdf_VectorImplContiguous (const VdfMask::Bits &bits)
 
 Vdf_VectorImplContiguous (const TYPE *data, const VdfMask::Bits &bits)
 
 Vdf_VectorImplContiguous (const Vdf_VectorImplContiguous &rhs)
 
 Vdf_VectorImplContiguous (Vdf_VectorImplContiguous &&sourceData)
 
 ~Vdf_VectorImplContiguous () override
 
void MoveInto (Vdf_VectorData::DataHolder *destData) override
 
void Clone (Vdf_VectorData::DataHolder *destData) const override
 
void CloneSubset (const VdfMask &mask, Vdf_VectorData::DataHolder *destData) const override
 
void Box (const VdfMask::Bits &bits, Vdf_VectorData::DataHolder *destData) const override
 
void Merge (const VdfMask::Bits &bits, Vdf_VectorData::DataHolder *destData) const override
 
void Expand (size_t first, size_t last) override
 
size_t GetSize () const override
 
size_t GetNumStoredElements () const override
 
bool IsSharable () const override
 
Vdf_VectorData::Info GetInfo () override
 
- Public Member Functions inherited from Vdf_VectorDataTyped< TYPE >
const std::type_info & GetTypeInfo () const overridefinal
 
void NewEmpty (size_t size, DataHolder *destData) const overridefinal
 
void NewSingle (DataHolder *destData) const overridefinal
 
void NewSparse (size_t size, size_t first, size_t last, DataHolder *destData) const overridefinal
 
void NewDense (size_t size, DataHolder *destData) const overridefinal
 
size_t EstimateElementMemory () const override
 
- Public Member Functions inherited from Vdf_VectorData
 Vdf_VectorData (const Vdf_VectorData &)=delete
 
Vdf_VectorDataoperator= (const Vdf_VectorData &)=delete
 
 Vdf_VectorData (Vdf_VectorData &&)=delete
 
Vdf_VectorDataoperator= (Vdf_VectorData &&)=delete
 
virtual VDF_API ~Vdf_VectorData ()
 
virtual VDF_API
Vt_ArrayForeignDataSource * 
GetSharedSource () const
 
VDF_API void DebugPrint (const VdfMask &mask, std::ostream *o) const
 

Additional Inherited Members

- Public Types inherited from Vdf_VectorData
typedef
Vdf_FixedSizePolymorphicHolder
< Vdf_VectorData,
_DataHolderSize
DataHolder
 
- Static Public Member Functions inherited from Vdf_VectorData
static VDF_API bool ShouldStoreCompressed (const VdfMask::Bits &bits, int elementSize)
 
- Protected Member Functions inherited from Vdf_VectorData
 Vdf_VectorData ()=default
 
- Static Protected Attributes inherited from Vdf_VectorData
static const size_t _SmallBufferSize = sizeof(size_t)*3 + sizeof(void *)
 
static const size_t _DataHolderSize = _SmallBufferSize + sizeof(void*)
 
static constexpr size_t _VectorSharingSize = 5000
 

Detailed Description

template<typename TYPE>
class Vdf_VectorImplContiguous< TYPE >

Implements Vdf_VectorData storage that holds a contiguous range of elements, which may be a subrange of the logical vector size.

Definition at line 20 of file vectorDataTyped.h.

Constructor & Destructor Documentation

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::Vdf_VectorImplContiguous ( size_t  size)
inlineexplicit

Dense vector constructor.

Constructs a vector of whose size is size. Storage is allocated for the range [0, size-1].

Definition at line 43 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::Vdf_VectorImplContiguous ( size_t  size,
size_t  first,
size_t  last 
)
inline

Sparse vector constructor.

Constructs a vector whose size is size. Storage is allocated for the range [first, last].

Definition at line 56 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::Vdf_VectorImplContiguous ( const VdfMask::Bits bits)
inlineexplicit

Sparse vector constructor.

Constructs a vector whose size is the width of bits. Storage is allocated for the range [bits.GetFirstSet(), bits.GetLastSet()].

Definition at line 66 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::Vdf_VectorImplContiguous ( const TYPE *  data,
const VdfMask::Bits bits 
)
inline

Sparse vector constructor.

Constructs a vector whose size is size. Storage is allocated for the range [bits.GetFirstSet(), bits.GetLastSet()]. Elements are copied from data for each set bit in bits.

Note that the block of memory allocated is contiguous even if the mask contains holes. Only the elements specified by the mask will be copied, all other elements will remain uninitialized.

Definition at line 81 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::Vdf_VectorImplContiguous ( const Vdf_VectorImplContiguous< TYPE > &  rhs)
inline

Definition at line 93 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::Vdf_VectorImplContiguous ( Vdf_VectorImplContiguous< TYPE > &&  sourceData)
inline

Definition at line 109 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorImplContiguous< TYPE >::~Vdf_VectorImplContiguous ( )
inlineoverride

Definition at line 121 of file vectorImpl_Contiguous.h.

Member Function Documentation

template<typename TYPE>
void Vdf_VectorImplContiguous< TYPE >::Box ( const VdfMask::Bits bits,
Vdf_VectorData::DataHolder destData 
) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 193 of file vectorImpl_Contiguous.h.

template<typename TYPE>
void Vdf_VectorImplContiguous< TYPE >::Clone ( Vdf_VectorData::DataHolder destData) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 133 of file vectorImpl_Contiguous.h.

template<typename TYPE>
void Vdf_VectorImplContiguous< TYPE >::CloneSubset ( const VdfMask mask,
Vdf_VectorData::DataHolder destData 
) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 140 of file vectorImpl_Contiguous.h.

template<typename TYPE>
void Vdf_VectorImplContiguous< TYPE >::Expand ( size_t  first,
size_t  last 
)
inlineoverridevirtual

Reimplemented from Vdf_VectorData.

Definition at line 237 of file vectorImpl_Contiguous.h.

template<typename TYPE>
Vdf_VectorData::Info Vdf_VectorImplContiguous< TYPE >::GetInfo ( )
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 288 of file vectorImpl_Contiguous.h.

template<typename TYPE>
size_t Vdf_VectorImplContiguous< TYPE >::GetNumStoredElements ( ) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 275 of file vectorImpl_Contiguous.h.

template<typename TYPE>
size_t Vdf_VectorImplContiguous< TYPE >::GetSize ( ) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 270 of file vectorImpl_Contiguous.h.

template<typename TYPE>
bool Vdf_VectorImplContiguous< TYPE >::IsSharable ( ) const
inlineoverridevirtual

Reimplemented from Vdf_VectorData.

Definition at line 283 of file vectorImpl_Contiguous.h.

template<typename TYPE>
void Vdf_VectorImplContiguous< TYPE >::Merge ( const VdfMask::Bits bits,
Vdf_VectorData::DataHolder destData 
) const
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 217 of file vectorImpl_Contiguous.h.

template<typename TYPE>
void Vdf_VectorImplContiguous< TYPE >::MoveInto ( Vdf_VectorData::DataHolder destData)
inlineoverridevirtual

Implements Vdf_VectorData.

Definition at line 126 of file vectorImpl_Contiguous.h.


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