Blender  V3.3
Classes | Typedefs | Functions | Variables
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)
 
voidMEM_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

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

◆ handle_t

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

◆ list_t

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

Function Documentation

◆ cast() [1/2]

static MEM_CacheLimiterCClass* cast ( MEM_CacheLimiterC l)
inlinestatic

◆ cast() [2/2]

static handle_t* cast ( MEM_CacheLimiterHandleC l)
inlinestatic

Definition at line 144 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 155 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 165 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 195 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 190 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 data object to manage.
Returns
CacheLimiterHandle to ref, unref, touch the managed object

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

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

Referenced by do_moviecache_put().

◆ MEM_CacheLimiter_is_disabled()

bool MEM_CacheLimiter_is_disabled ( void  )

Definition at line 35 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 180 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 30 of file MEM_CacheLimiterC-Api.cpp.

References is_disabled.

◆ MEM_CacheLimiter_set_maximum()

void MEM_CacheLimiter_set_maximum ( size_t  m)

Definition at line 20 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 175 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 170 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 185 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 149 of file MEM_CacheLimiterC-Api.cpp.

Referenced by IMB_moviecache_init().

Variable Documentation

◆ is_disabled

bool is_disabled = false
static