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