Blender  V3.3
Public Types | Public Member Functions | List of all members
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 125 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 127 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 129 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 128 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 131 of file MEM_CacheLimiter.h.

◆ ~MEM_CacheLimiter()

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

Definition at line 135 of file MEM_CacheLimiter.h.

Member Function Documentation

◆ enforce_limits()

template<class T >
void MEM_CacheLimiter< T >::enforce_limits ( )
inline

◆ 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 143 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 238 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 233 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 218 of file MEM_CacheLimiter.h.

References NULL.

◆ unmanage()

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

Definition at line 150 of file MEM_CacheLimiter.h.

References pos.


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