Blender  V2.59
Classes | Typedefs | Functions
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_CacheLimiterHandleCClass
handle_t
typedef MEM_CacheLimiter
< MEM_CacheLimiterHandleCClass
cache_t
typedef std::list
< MEM_CacheLimiterHandleCClass
*, MEM_Allocator
< MEM_CacheLimiterHandleCClass * > > 
list_t

Functions

static intptr_t & get_max ()
void MEM_CacheLimiter_set_maximum (intptr_t m)
intptr_t MEM_CacheLimiter_get_maximum ()
static MEM_CacheLimiterCClasscast (MEM_CacheLimiterC *l)
static handle_tcast (MEM_CacheLimiterHandleC *l)
MEM_CacheLimiterCnew_MEM_CacheLimiter (MEM_CacheLimiter_Destruct_Func data_destructor)
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)

Detailed Description

Definition in file MEM_CacheLimiterC-Api.cpp.


Typedef Documentation

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

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

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


Function Documentation

static MEM_CacheLimiterCClass* cast ( MEM_CacheLimiterC l) [inline, static]
static handle_t* cast ( MEM_CacheLimiterHandleC l) [inline, static]

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

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

References cast().

Referenced by IMB_free_cache_limiter(), and seq_stripelem_cache_destruct().

static intptr_t& get_max ( ) [static]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The Blender Foundation also sells licenses for use in proprietary software under the Blender License. See http://www.blender.org/BL/ for information about this.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Contributor(s): Peter Schlaile <peter@schlaile.de> 2005

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

Referenced by MEM_CacheLimiter_get_maximum(), and MEM_CacheLimiter_set_maximum().

void MEM_CacheLimiter_enforce_limits ( MEM_CacheLimiterC This)

Free objects until memory constraints are satisfied

Parameters:
This"This" pointer

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

References cast(), MEM_CacheLimiter< T >::enforce_limits(), and MEM_CacheLimiterCClass::get_cache().

Referenced by IMB_cache_limiter_insert(), and seq_stripelem_cache_put().

void* MEM_CacheLimiter_get ( MEM_CacheLimiterHandleC handle)

Get pointer to managed object

Parameters:
handleof object

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

References cast().

intptr_t MEM_CacheLimiter_get_maximum ( void  )
int MEM_CacheLimiter_get_refcount ( MEM_CacheLimiterHandleC handle)

Get reference counter.

Parameters:
This"This" pointer, handle of object

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

References cast().

Referenced by IMB_cache_limiter_get_refcount().

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

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

Referenced by IMB_cache_limiter_insert(), and seq_stripelem_cache_put().

void MEM_CacheLimiter_ref ( MEM_CacheLimiterHandleC handle)

Increment reference counter. Objects with reference counter != 0 are _not_ deleted.

Parameters:
handleof object

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

References cast().

Referenced by IMB_cache_limiter_insert(), IMB_cache_limiter_ref(), and seq_stripelem_cache_put().

void MEM_CacheLimiter_set_maximum ( intptr_t  m)

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

References get_max().

Referenced by wm_init_userdef().

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

References cast().

Referenced by IMB_cache_limiter_touch(), and seq_stripelem_cache_get().

void MEM_CacheLimiter_unmanage ( MEM_CacheLimiterHandleC handle)

Unmanage object previously inserted object. Does _not_ delete managed object!

Parameters:
This"This" pointer, handle of object

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

References cast().

Referenced by HashValFree(), and IMB_cache_limiter_unmanage().

void MEM_CacheLimiter_unref ( MEM_CacheLimiterHandleC handle)

Decrement reference counter. Objects with reference counter != 0 are _not_ deleted.

Parameters:
handleof object

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

References cast().

Referenced by IMB_cache_limiter_insert(), IMB_cache_limiter_unref(), and seq_stripelem_cache_put().

MEM_CacheLimiterC* new_MEM_CacheLimiter ( MEM_CacheLimiter_Destruct_Func  data_destructor)

Create new MEM_CacheLimiter object managed objects are destructed with the data_destructor

Parameters:
data_destructor
Returns:
A new MEM_CacheLimter object

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

Referenced by get_imbuf_cache_limiter(), and seq_stripelem_cache_init().