21VTK_ABI_NAMESPACE_BEGIN
 
   22template <
class ScalarTypeT>
 
   99  void operator=(
const vtkBuffer&) = 
delete;
 
  102template <
class ScalarT>
 
  108template <
class ScalarT>
 
  116template <
typename ScalarT>
 
  119  if (this->Pointer != array)
 
  121    if (this->DeleteFunction)
 
  123      this->DeleteFunction(this->Pointer);
 
  125    this->Pointer = array;
 
  130template <
typename ScalarT>
 
  133  this->MallocFunction = mallocFunction;
 
  136template <
typename ScalarT>
 
  139  this->ReallocFunction = reallocFunction;
 
  143template <
typename ScalarT>
 
  148    this->DeleteFunction = 
nullptr;
 
  152    this->DeleteFunction = deleteFunction;
 
  157template <
typename ScalarT>
 
  161  this->SetBuffer(
nullptr, 0);
 
  165    if (this->MallocFunction)
 
  175      this->SetBuffer(newArray, size);
 
  176      if (!this->MallocFunction)
 
  178        this->DeleteFunction = free;
 
  188template <
typename ScalarT>
 
  193    return this->Allocate(0);
 
  196  if (this->Pointer && this->DeleteFunction != free)
 
  199    bool forceFreeFunction = 
false;
 
  200    if (this->MallocFunction)
 
  203      if (this->MallocFunction == malloc)
 
  211        forceFreeFunction = 
true;
 
  222    std::copy(this->Pointer, this->Pointer + (std::min)(this->Size, newsize), newArray);
 
  224    this->SetBuffer(newArray, newsize);
 
  225    if (!this->MallocFunction || forceFreeFunction)
 
  227      this->DeleteFunction = free;
 
  235    if (this->ReallocFunction)
 
  238        this->ReallocFunction(this->Pointer, newsize * 
sizeof(
ScalarType)));
 
  248    this->Pointer = newArray;
 
  249    this->Size = newsize;
 
internal storage class used by vtkSOADataArrayTemplate, vtkAOSDataArrayTemplate, and others.
 
bool Reallocate(vtkIdType newsize)
Allocate a new buffer that holds newsize elements.
 
ScalarType * GetBuffer()
Access the buffer as a scalar pointer.
 
vtkFreeingFunction DeleteFunction
 
vtkMallocingFunction MallocFunction
 
const ScalarType * GetBuffer() const
 
void SetReallocFunction(vtkReallocingFunction reallocFunction=realloc)
Set the realloc function to be used when allocating space inside this object.
 
static vtkBuffer< ScalarTypeT > * ExtendedNew()
 
void SetMallocFunction(vtkMallocingFunction mallocFunction=malloc)
Set the malloc function to be used when allocating space inside this object.
 
vtkIdType GetSize() const
Return the number of elements the current buffer can hold.
 
vtkTemplateTypeMacro(vtkBuffer< ScalarTypeT >, vtkObject)
 
void SetFreeFunction(bool noFreeFunction, vtkFreeingFunction deleteFunction=free)
Set the free function to be used when releasing this object.
 
vtkReallocingFunction ReallocFunction
 
bool Allocate(vtkIdType size)
Allocate a new buffer that holds size elements.
 
static vtkBuffer< ScalarTypeT > * New()
 
void SetBuffer(ScalarType *array, vtkIdType size)
Set the memory buffer that this vtkBuffer object will manage.
 
A class to help modify and restore the global UsingMemkind state, like SetUsingMemkind(newValue),...
 
static vtkFreeingFunction GetCurrentFreeFunction()
 
static vtkMallocingFunction GetCurrentMallocFunction()
 
static vtkReallocingFunction GetCurrentReallocFunction()
 
abstract base class for most VTK objects
 
void *(* vtkMallocingFunction)(size_t)
 
void *(* vtkReallocingFunction)(void *, size_t)
 
void(* vtkFreeingFunction)(void *)
 
#define VTK_STANDARD_NEW_BODY(thisClass)