Vuo  0.9.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Macros | Typedefs | Functions
VuoHeap.h File Reference

Description

VuoHeap interface.

Macros

#define VuoRegister(heapPointer, deallocate)
 Registers heapPointer to be reference-counted and stores its deallocate function (unless heapPointer is null or is already being reference-counted).
 
#define VuoRegisterSingleton(heapPointer)
 Registers heapPointer as a singleton, meaning that VuoRetain and VuoRelease will have no effect on it (and will not issue warnings).
 
#define VuoRetain(heapPointer)   VuoRetainF(heapPointer, __FILE__, __LINE__, __func__)
 Increments the reference count for heapPointer (unless heapPointer is not being reference-counted).
 
#define VuoRelease(heapPointer)   VuoReleaseF(heapPointer, __FILE__, __LINE__, __func__)
 Decrements the reference count for heapPointer (unless heapPointer is not being reference-counted).
 

Typedefs

typedef void(* DeallocateFunctionType )(void *)
 A type for destructor functions, such as free(void *), which are used to deallocate reference-counted memory when it's no longer in use.
 

Functions

void VuoHeap_init (void)
 Initializes the reference-counting system.
 
void VuoHeap_fini (void)
 Cleans up the reference-counting system.
 
int VuoRegisterF (const void *heapPointer, DeallocateFunctionType deallocate, const char *file, unsigned int line, const char *func, const char *pointerName)
 Instead of this function, you probably want to use VuoRegister().
 
int VuoRegisterSingletonF (const void *heapPointer, const char *file, unsigned int line, const char *func, const char *pointerName)
 Instead of this function, you probably want to use VuoRegisterSingleton().
 
int VuoRetainF (const void *heapPointer, const char *file, unsigned int line, const char *func)
 Instead of this function, you probably want to use VuoRetain().
 
int VuoReleaseF (const void *heapPointer, const char *file, unsigned int line, const char *func)
 Instead of this function, you probably want to use VuoRelease().
 
const char * VuoHeap_getDescription (const void *heapPointer)
 Returns a description of the specified heapPointer: the file, line, and function where VuoRegister() was called, and the variable name.
 

Function Documentation

void VuoHeap_fini ( void  )

Cleans up the reference-counting system.

To be called once, after all other reference-counting function calls.

const char* VuoHeap_getDescription ( const void *  heapPointer)

Returns a description of the specified heapPointer: the file, line, and function where VuoRegister() was called, and the variable name.

The returned string is still owned by VuoHeap; you should not free it.

void VuoHeap_init ( void  )

Initializes the reference-counting system.

To be called once, before any other reference-counting function calls.

int VuoRegisterF ( const void *  heapPointer,
DeallocateFunctionType  deallocate,
const char *  file,
unsigned int  line,
const char *  func,
const char *  pointerName 
)

Instead of this function, you probably want to use VuoRegister().

This function is used to implement the VuoRegister() macro.

Registers heapPointer to be reference-counted and stores its deallocate function (unless heapPointer is null or is already being reference-counted).

Parameters
heapPointerA pointer to allocated memory on the heap.
deallocateThe function to be used to deallocate the memory when the reference count gets back to its original value of 0.
fileThe name of the file in which VuoRegister() is called.
lineThe line in the file in which VuoRegister() is called.
funcThe function in which VuoRegister() is called.
pointerNameThe stringified pointer variable name.
Returns
The updated reference count of heapPointer. This is 0 if heapPointer is not already being reference-counted, greater than 0 if it is, or -1 if heapPointer is null.
int VuoRegisterSingletonF ( const void *  heapPointer,
const char *  file,
unsigned int  line,
const char *  func,
const char *  pointerName 
)

Instead of this function, you probably want to use VuoRegisterSingleton().

This function is used to implement the VuoRegisterSingleton() macro.

int VuoReleaseF ( const void *  heapPointer,
const char *  file,
unsigned int  line,
const char *  func 
)

Instead of this function, you probably want to use VuoRelease().

This function is used to implement the VuoRelease() macro.

int VuoRetainF ( const void *  heapPointer,
const char *  file,
unsigned int  line,
const char *  func 
)

Instead of this function, you probably want to use VuoRetain().

This function is used to implement the VuoRetain() macro.