OpenVDB 11.0.0

Loading...
Searching...
No Matches
HostBuffer::Pool Struct Reference

`#include <nanovdb/util/HostBuffer.h>`

## Public Types
using | HashTableT = std::unordered_set<HostBuffer*>

## Public Member Functions
| Pool (uint64_t size=0, void *data=nullptr)
| External memory ctor.
| ~Pool ()
| Custom destructor.
| Pool (const Pool &)=delete
| Disallow copy-construction.
| Pool (const Pool &&)=delete
| Disallow move-construction.
Pool & | operator= (const Pool &)=delete
| Disallow copy assignment operation.
Pool & | operator= (const Pool &&)=delete
| Disallow move assignment operation.
uint64_t | usage () const
| Return the total number of bytes used from this Pool by buffers.
void | add (HostBuffer *buffer, uint64_t size)
| Allocate a buffer of the specified size and add it to the register.
void | remove (HostBuffer *buffer)
| Remove the specified buffer from the register.
void | replace (HostBuffer *buffer1, HostBuffer *buffer2)
| Replaces buffer1 with buffer2 in the register.
void | reset ()
| Reset the register and all its buffers.
void | resize (uint64_t size, void *data=nullptr)
| Resize this Pool and update registered buffers as needed. If data is no NULL it is used as externally managed memory.
bool | isFull () const
| Return true is all the memory in this pool is in use.

## Public Attributes
std::mutex | mMutex
HashTableT | mRegister
uint8_t * | mData
uint8_t * | mFree
uint64_t | mSize
uint64_t | mPadding
bool | mManaged

## Member Typedef Documentation

## ◆ HashTableT

using HashTableT = std::unordered_set<HostBuffer*>

## Constructor & Destructor Documentation

## ◆ Pool() [1/3]

Pool | ( | uint64_t | size = 0,
|  | void * | data = nullptr )
| inline

External memory ctor.

## ◆ ~Pool()

~Pool | ( |  | ) |
| inline

Custom destructor.

## ◆ Pool() [2/3]

Pool | ( | const Pool & |  | ) |
| delete

Disallow copy-construction.

## ◆ Pool() [3/3]

Pool | ( | const Pool && |  | ) |
| delete

Disallow move-construction.

## Member Function Documentation

## ◆ add()

void add | ( | HostBuffer * | buffer,
|  | uint64_t | size )
| inline

Allocate a buffer of the specified size and add it to the register.

## ◆ isFull()

bool isFull | ( |  | ) | const
| inline

Return true is all the memory in this pool is in use.

## ◆ operator=() [1/2]

Pool & operator= | ( | const Pool && |  | ) |
| delete

Disallow move assignment operation.

## ◆ operator=() [2/2]

Pool & operator= | ( | const Pool & |  | ) |
| delete

Disallow copy assignment operation.

## ◆ remove()

void remove | ( | HostBuffer * | buffer | ) |
| inline

Remove the specified buffer from the register.

## ◆ replace()

void replace | ( | HostBuffer * | buffer1,
|  | HostBuffer * | buffer2 )
| inline

Replaces buffer1 with buffer2 in the register.

## ◆ reset()

void reset | ( |  | ) |
| inline

Reset the register and all its buffers.

## ◆ resize()

void resize | ( | uint64_t | size,
|  | void * | data = nullptr )
| inline

Resize this Pool and update registered buffers as needed. If data is no NULL it is used as externally managed memory.

## ◆ usage()

uint64_t usage | ( |  | ) | const
| inline

Return the total number of bytes used from this Pool by buffers.

## Member Data Documentation

## ◆ mData

uint8_t* mData

## ◆ mFree

uint8_t* mFree

## ◆ mManaged

bool mManaged

## ◆ mMutex

std::mutex mMutex

## ◆ mPadding

uint64_t mPadding

## ◆ mRegister

HashTableT mRegister

## ◆ mSize

uint64_t mSize