Blender V5.0
MEM_CacheLimiterC-Api.cpp File Reference
#include <cstddef>
#include <list>
#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

using handle_t = MEM_CacheLimiterHandle<MEM_CacheLimiterHandleCClass>
using cache_t = MEM_CacheLimiter<MEM_CacheLimiterHandleCClass>
using 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

using list_t
Initial value:
std::list<MEM_CacheLimiterHandleCClass *, MEM_Allocator<MEM_CacheLimiterHandleCClass *>>

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

Function Documentation

◆ cast() [1/2]

MEM_CacheLimiterCClass * cast ( MEM_CacheLimiterC * l)
inlinestatic

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

References l.

◆ cast() [2/2]

handle_t * cast ( MEM_CacheLimiterHandleC * l)
inlinestatic

Definition at line 147 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 158 of file MEM_CacheLimiterC-Api.cpp.

References cast.

Referenced by IMB_moviecache_destruct().

◆ get_max()

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 168 of file MEM_CacheLimiterC-Api.cpp.

References cast.

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 198 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)

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

References cast.

Referenced by IMB_moviecache_put_if_possible().

◆ MEM_CacheLimiter_get_refcount()

int MEM_CacheLimiter_get_refcount ( MEM_CacheLimiterHandleC * handle)

Get reference counter.

Parameters
handleof object.

Definition at line 193 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 163 of file MEM_CacheLimiterC-Api.cpp.

References cast, and data.

Referenced by do_moviecache_put().

◆ MEM_CacheLimiter_is_disabled()

bool MEM_CacheLimiter_is_disabled ( void )

◆ MEM_CacheLimiter_ItemDestroyable_Func_set()

void MEM_CacheLimiter_ItemDestroyable_Func_set ( MEM_CacheLimiterC * This,
MEM_CacheLimiter_ItemDestroyable_Func item_destroyable_func )

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

References cast.

Referenced by IMB_moviecache_init().

◆ MEM_CacheLimiter_ItemPriority_Func_set()

void MEM_CacheLimiter_ItemPriority_Func_set ( MEM_CacheLimiterC * This,
MEM_CacheLimiter_ItemPriority_Func item_priority_func )

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

References cast.

Referenced by IMB_moviecache_init().

◆ 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 183 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 33 of file MEM_CacheLimiterC-Api.cpp.

References is_disabled.

◆ MEM_CacheLimiter_set_maximum()

void MEM_CacheLimiter_set_maximum ( size_t m)

Definition at line 23 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 178 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 173 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 188 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 152 of file MEM_CacheLimiterC-Api.cpp.

Referenced by IMB_moviecache_init().

Variable Documentation

◆ is_disabled