Blender V4.3
MEM_CacheLimiterC-Api.cpp File Reference
#include <cstddef>
#include "MEM_CacheLimiter.h"
#include "MEM_CacheLimiterC-Api.h"

Go to the source code of this file.

Classes

class  MEM_CacheLimiterCClass
 
class  MEM_CacheLimiterHandleCClass
 

Typedefs

typedef MEM_CacheLimiterHandle< MEM_CacheLimiterHandleCClasshandle_t
 
typedef MEM_CacheLimiter< MEM_CacheLimiterHandleCClasscache_t
 
typedef std::list< MEM_CacheLimiterHandleCClass *, MEM_Allocator< MEM_CacheLimiterHandleCClass * > > list_t
 

Functions

static size_t & get_max ()
 
void MEM_CacheLimiter_set_maximum (size_t m)
 
size_t MEM_CacheLimiter_get_maximum ()
 
void MEM_CacheLimiter_set_disabled (bool disabled)
 
bool MEM_CacheLimiter_is_disabled (void)
 
static MEM_CacheLimiterCClasscast (MEM_CacheLimiterC *l)
 
static handle_tcast (MEM_CacheLimiterHandleC *l)
 
MEM_CacheLimiterCnew_MEM_CacheLimiter (MEM_CacheLimiter_Destruct_Func data_destructor, MEM_CacheLimiter_DataSize_Func data_size)
 
void delete_MEM_CacheLimiter (MEM_CacheLimiterC *This)
 
MEM_CacheLimiterHandleCMEM_CacheLimiter_insert (MEM_CacheLimiterC *This, void *data)
 
void MEM_CacheLimiter_enforce_limits (MEM_CacheLimiterC *This)
 
void MEM_CacheLimiter_unmanage (MEM_CacheLimiterHandleC *handle)
 
void MEM_CacheLimiter_touch (MEM_CacheLimiterHandleC *handle)
 
void MEM_CacheLimiter_ref (MEM_CacheLimiterHandleC *handle)
 
void MEM_CacheLimiter_unref (MEM_CacheLimiterHandleC *handle)
 
int MEM_CacheLimiter_get_refcount (MEM_CacheLimiterHandleC *handle)
 
void * MEM_CacheLimiter_get (MEM_CacheLimiterHandleC *handle)
 
void MEM_CacheLimiter_ItemPriority_Func_set (MEM_CacheLimiterC *This, MEM_CacheLimiter_ItemPriority_Func item_priority_func)
 
void MEM_CacheLimiter_ItemDestroyable_Func_set (MEM_CacheLimiterC *This, MEM_CacheLimiter_ItemDestroyable_Func item_destroyable_func)
 
size_t MEM_CacheLimiter_get_memory_in_use (MEM_CacheLimiterC *This)
 

Variables

static bool is_disabled = false
 

Typedef Documentation

◆ cache_t

◆ handle_t

◆ list_t

Function Documentation

◆ cast() [1/2]

◆ cast() [2/2]

static handle_t * cast ( MEM_CacheLimiterHandleC * l)
inlinestatic

Definition at line 146 of file MEM_CacheLimiterC-Api.cpp.

References l.

◆ delete_MEM_CacheLimiter()

void delete_MEM_CacheLimiter ( MEM_CacheLimiterC * This)

Delete MEM_CacheLimiter

Frees the memory of the CacheLimiter but does not touch managed objects!

Parameters
This"This" pointer.

Definition at line 157 of file MEM_CacheLimiterC-Api.cpp.

References cast().

Referenced by IMB_moviecache_destruct().

◆ get_max()

static size_t & get_max ( )
static

◆ MEM_CacheLimiter_enforce_limits()

void MEM_CacheLimiter_enforce_limits ( MEM_CacheLimiterC * This)

Free objects until memory constraints are satisfied

Parameters
This"This" pointer.

Definition at line 167 of file MEM_CacheLimiterC-Api.cpp.

References cast(), MEM_CacheLimiter< T >::enforce_limits(), and MEM_CacheLimiterCClass::get_cache().

Referenced by do_moviecache_put().

◆ MEM_CacheLimiter_get()

void * MEM_CacheLimiter_get ( MEM_CacheLimiterHandleC * handle)

Get pointer to managed object

Parameters
handleof object.

Definition at line 197 of file MEM_CacheLimiterC-Api.cpp.

References cast().

◆ MEM_CacheLimiter_get_maximum()

size_t MEM_CacheLimiter_get_maximum ( void )

◆ MEM_CacheLimiter_get_memory_in_use()

size_t MEM_CacheLimiter_get_memory_in_use ( MEM_CacheLimiterC * This)

◆ MEM_CacheLimiter_get_refcount()

int MEM_CacheLimiter_get_refcount ( MEM_CacheLimiterHandleC * handle)

Get reference counter.

Parameters
handleof object.

Definition at line 192 of file MEM_CacheLimiterC-Api.cpp.

References cast().

◆ MEM_CacheLimiter_insert()

MEM_CacheLimiterHandleC * MEM_CacheLimiter_insert ( MEM_CacheLimiterC * This,
void * data )

Manage object

Parameters
This"This" pointer, data object to manage.
Returns
The handle to reference/unreference & touch the managed object.

Definition at line 162 of file MEM_CacheLimiterC-Api.cpp.

References cast(), and MEM_CacheLimiterCClass::insert().

Referenced by do_moviecache_put().

◆ MEM_CacheLimiter_is_disabled()

bool MEM_CacheLimiter_is_disabled ( void )

Definition at line 37 of file MEM_CacheLimiterC-Api.cpp.

References is_disabled.

Referenced by MEM_CacheLimiter< T >::enforce_limits().

◆ MEM_CacheLimiter_ItemDestroyable_Func_set()

void MEM_CacheLimiter_ItemDestroyable_Func_set ( MEM_CacheLimiterC * This,
MEM_CacheLimiter_ItemDestroyable_Func item_destroyable_func )

◆ MEM_CacheLimiter_ItemPriority_Func_set()

void MEM_CacheLimiter_ItemPriority_Func_set ( MEM_CacheLimiterC * This,
MEM_CacheLimiter_ItemPriority_Func item_priority_func )

◆ MEM_CacheLimiter_ref()

void MEM_CacheLimiter_ref ( MEM_CacheLimiterHandleC * handle)

Increment reference counter. Objects with reference counter != 0 are not deleted.

Parameters
handleof object.

Definition at line 182 of file MEM_CacheLimiterC-Api.cpp.

References cast().

Referenced by do_moviecache_put().

◆ MEM_CacheLimiter_set_disabled()

void MEM_CacheLimiter_set_disabled ( bool disabled)

Definition at line 32 of file MEM_CacheLimiterC-Api.cpp.

References is_disabled.

◆ MEM_CacheLimiter_set_maximum()

void MEM_CacheLimiter_set_maximum ( size_t m)

Definition at line 22 of file MEM_CacheLimiterC-Api.cpp.

References get_max().

Referenced by wm_init_userdef().

◆ MEM_CacheLimiter_touch()

void MEM_CacheLimiter_touch ( MEM_CacheLimiterHandleC * handle)

Raise priority of object (put it at the tail of the deletion chain)

Parameters
handleof object.

Definition at line 177 of file MEM_CacheLimiterC-Api.cpp.

References cast().

Referenced by IMB_moviecache_get().

◆ MEM_CacheLimiter_unmanage()

void MEM_CacheLimiter_unmanage ( MEM_CacheLimiterHandleC * handle)

Unmanage object previously inserted object. Does not delete managed object!

Parameters
handleof object.

Definition at line 172 of file MEM_CacheLimiterC-Api.cpp.

References cast().

Referenced by moviecache_valfree().

◆ MEM_CacheLimiter_unref()

void MEM_CacheLimiter_unref ( MEM_CacheLimiterHandleC * handle)

Decrement reference counter. Objects with reference counter != 0 are not deleted.

Parameters
handleof object.

Definition at line 187 of file MEM_CacheLimiterC-Api.cpp.

References cast().

Referenced by do_moviecache_put().

◆ new_MEM_CacheLimiter()

MEM_CacheLimiterC * new_MEM_CacheLimiter ( MEM_CacheLimiter_Destruct_Func data_destructor,
MEM_CacheLimiter_DataSize_Func data_size )

Create new MEM_CacheLimiter object managed objects are destructed with the data_destructor

Parameters
data_destructorTODO.
Returns
A new #MEM_CacheLimter object.

Definition at line 151 of file MEM_CacheLimiterC-Api.cpp.

Referenced by IMB_moviecache_init().

Variable Documentation

◆ is_disabled