OpenVDB
9.0.1
|
#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. More... | |
~Pool () | |
Custom destructor. More... | |
Pool (const Pool &)=delete | |
Disallow copy-construction. More... | |
Pool (const Pool &&)=delete | |
Disallow move-construction. More... | |
Pool & | operator= (const Pool &)=delete |
Disallow copy assignment operation. More... | |
Pool & | operator= (const Pool &&)=delete |
Disallow move assignment operation. More... | |
uint64_t | usage () const |
Return the total number of bytes used from this Pool by buffers. More... | |
void | add (HostBuffer *buffer, uint64_t size) |
Allocate a buffer of the specified size and add it to the register. More... | |
void | remove (HostBuffer *buffer) |
Remove the specified buffer from the register. More... | |
void | replace (HostBuffer *buffer1, HostBuffer *buffer2) |
Replaces buffer1 with buffer2 in the register. More... | |
void | reset () |
Reset the register and all its buffers. More... | |
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. More... | |
bool | isFull () const |
Return true is all the memory in this pool is in use. More... | |
Public Attributes | |
std::mutex | mMutex |
HashTableT | mRegister |
uint8_t * | mData |
uint8_t * | mFree |
uint64_t | mSize |
bool | mManaged |
using HashTableT = std::unordered_set<HostBuffer*> |
|
inline |
External memory ctor.
|
inline |
Custom destructor.
|
inline |
Allocate a buffer of the specified size and add it to the register.
|
inline |
Return true is all the memory in this pool is in use.
|
inline |
Remove the specified buffer from the register.
|
inline |
Replaces buffer1 with buffer2 in the register.
|
inline |
Reset the register and all its buffers.
|
inline |
Resize this Pool and update registered buffers as needed. If data is no NULL it is used as externally managed memory.
|
inline |
Return the total number of bytes used from this Pool by buffers.
uint8_t* mData |
uint8_t* mFree |
bool mManaged |
std::mutex mMutex |
HashTableT mRegister |
uint64_t mSize |