Blender V4.3
MEM_CacheLimiter< T > Class Template Reference

#include <MEM_CacheLimiter.h>

Public Types

typedef size_t(* MEM_CacheLimiter_DataSize_Func) (void *data)
 
typedef int(* MEM_CacheLimiter_ItemPriority_Func) (void *item, int default_priority)
 
typedef bool(* MEM_CacheLimiter_ItemDestroyable_Func) (void *item)
 

Public Member Functions

 MEM_CacheLimiter (MEM_CacheLimiter_DataSize_Func data_size_func)
 
 ~MEM_CacheLimiter ()
 
MEM_CacheLimiterHandle< T > * insert (T *elem)
 
void unmanage (MEM_CacheLimiterHandle< T > *handle)
 
size_t get_memory_in_use ()
 
void enforce_limits ()
 
void touch (MEM_CacheLimiterHandle< T > *handle)
 
void set_item_priority_func (MEM_CacheLimiter_ItemPriority_Func item_priority_func)
 
void set_item_destroyable_func (MEM_CacheLimiter_ItemDestroyable_Func item_destroyable_func)
 

Detailed Description

template<class T>
class MEM_CacheLimiter< T >

MEM_CacheLimiter

This class defines a generic memory cache management system to limit memory usage to a fixed global maximum.

Note
Please use the C-API in MEM_CacheLimiterC-Api.h for code written in C.

Usage example:

class BigFatImage {
public:
~BigFatImage() { tell_everyone_we_are_gone(this); }
};
void doit()
{
MEM_Cache<BigFatImage> BigFatImages;
MEM_Cache_Handle<BigFatImage>* h = BigFatImages.insert(new BigFatImage);
BigFatImages.enforce_limits();
h->ref();
// work with image...
h->unref();
// leave image in cache.

Definition at line 127 of file MEM_CacheLimiter.h.

Member Typedef Documentation

◆ MEM_CacheLimiter_DataSize_Func

template<class T >
typedef size_t(* MEM_CacheLimiter< T >::MEM_CacheLimiter_DataSize_Func) (void *data)

Definition at line 129 of file MEM_CacheLimiter.h.

◆ MEM_CacheLimiter_ItemDestroyable_Func

template<class T >
typedef bool(* MEM_CacheLimiter< T >::MEM_CacheLimiter_ItemDestroyable_Func) (void *item)

Definition at line 131 of file MEM_CacheLimiter.h.

◆ MEM_CacheLimiter_ItemPriority_Func

template<class T >
typedef int(* MEM_CacheLimiter< T >::MEM_CacheLimiter_ItemPriority_Func) (void *item, int default_priority)

Definition at line 130 of file MEM_CacheLimiter.h.

Constructor & Destructor Documentation

◆ MEM_CacheLimiter()

template<class T >
MEM_CacheLimiter< T >::MEM_CacheLimiter ( MEM_CacheLimiter_DataSize_Func data_size_func)
inline

Definition at line 133 of file MEM_CacheLimiter.h.

◆ ~MEM_CacheLimiter()

template<class T >
MEM_CacheLimiter< T >::~MEM_CacheLimiter ( )
inline

Definition at line 137 of file MEM_CacheLimiter.h.

Member Function Documentation

◆ enforce_limits()

◆ get_memory_in_use()

template<class T >
size_t MEM_CacheLimiter< T >::get_memory_in_use ( )
inline

◆ insert()

template<class T >
MEM_CacheLimiterHandle< T > * MEM_CacheLimiter< T >::insert ( T * elem)
inline

Definition at line 145 of file MEM_CacheLimiter.h.

Referenced by MEM_CacheLimiterCClass::insert().

◆ set_item_destroyable_func()

template<class T >
void MEM_CacheLimiter< T >::set_item_destroyable_func ( MEM_CacheLimiter_ItemDestroyable_Func item_destroyable_func)
inline

Definition at line 241 of file MEM_CacheLimiter.h.

Referenced by MEM_CacheLimiter_ItemDestroyable_Func_set().

◆ set_item_priority_func()

template<class T >
void MEM_CacheLimiter< T >::set_item_priority_func ( MEM_CacheLimiter_ItemPriority_Func item_priority_func)
inline

Definition at line 236 of file MEM_CacheLimiter.h.

Referenced by MEM_CacheLimiter_ItemPriority_Func_set().

◆ touch()

template<class T >
void MEM_CacheLimiter< T >::touch ( MEM_CacheLimiterHandle< T > * handle)
inline

Definition at line 221 of file MEM_CacheLimiter.h.

References NULL.

◆ unmanage()

template<class T >
void MEM_CacheLimiter< T >::unmanage ( MEM_CacheLimiterHandle< T > * handle)
inline

Definition at line 152 of file MEM_CacheLimiter.h.

References pos.


The documentation for this class was generated from the following file: