Blender  V3.3
Typedefs | Functions
MEM_CacheLimiterC-Api.h File Reference
#include "BLI_utildefines.h"

Go to the source code of this file.

Typedefs

typedef struct MEM_CacheLimiter_s MEM_CacheLimiterC
 
typedef struct MEM_CacheLimiterHandle_s MEM_CacheLimiterHandleC
 
typedef void(* MEM_CacheLimiter_Destruct_Func) (void *)
 
typedef size_t(* MEM_CacheLimiter_DataSize_Func) (void *)
 
typedef int(* MEM_CacheLimiter_ItemPriority_Func) (void *, int)
 
typedef bool(* MEM_CacheLimiter_ItemDestroyable_Func) (void *)
 

Functions

void MEM_CacheLimiter_set_maximum (size_t m)
 
size_t MEM_CacheLimiter_get_maximum (void)
 
void MEM_CacheLimiter_set_disabled (bool disabled)
 
bool MEM_CacheLimiter_is_disabled (void)
 
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)
 

Typedef Documentation

◆ MEM_CacheLimiter_DataSize_Func

typedef size_t(* MEM_CacheLimiter_DataSize_Func) (void *)

Definition at line 26 of file MEM_CacheLimiterC-Api.h.

◆ MEM_CacheLimiter_Destruct_Func

typedef void(* MEM_CacheLimiter_Destruct_Func) (void *)

Definition at line 23 of file MEM_CacheLimiterC-Api.h.

◆ MEM_CacheLimiter_ItemDestroyable_Func

typedef bool(* MEM_CacheLimiter_ItemDestroyable_Func) (void *)

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

◆ MEM_CacheLimiter_ItemPriority_Func

typedef int(* MEM_CacheLimiter_ItemPriority_Func) (void *, int)

Definition at line 29 of file MEM_CacheLimiterC-Api.h.

◆ MEM_CacheLimiterC

typedef struct MEM_CacheLimiter_s MEM_CacheLimiterC

Definition at line 1 of file MEM_CacheLimiterC-Api.h.

◆ MEM_CacheLimiterHandleC

typedef struct MEM_CacheLimiterHandle_s MEM_CacheLimiterHandleC

Definition at line 1 of file MEM_CacheLimiterC-Api.h.

Function Documentation

◆ 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().

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

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

References get_max().

Referenced by IMB_moviecache_put_if_possible().

◆ 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.

◆ 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().