scfImplementationPooled< Super, Allocator, Locked > Class Template Reference (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes
scfImplementationPooled< Super, Allocator, Locked > Class Template Reference
Shared Class Facility (SCF)

Derive an SCF implementation from this class to have it pooled. More...

`#include <csutil/pooledscfclass.h>`

Inherits Super.

List of all members.

## Public Member Functions
void | DecRef ()
| DecRef() implementation that returns the object to the pool.
void * | operator new (size_t n, Pool &p)
| Allocate a new instance of a pooled SCF class.
void | operator delete (void *instance, Pool &p)
| Recycle a new instance of a pooled SCF class.
void | operator delete (void *instance)
| Recycle a new instance of a pooled SCF class.
| scfImplementationPooled (scfClassType *object)
| Constructor.
template<typename A >
| scfImplementationPooled (scfClassType *object, A a)
| Constructor.
template<typename A , typename B >
| scfImplementationPooled (scfClassType *object, A a, B b)
| Constructor.
template<typename A , typename B , typename C >
| scfImplementationPooled (scfClassType *object, A a, B b, C c)
| Constructor.
template<typename A , typename B , typename C , typename D >
| scfImplementationPooled (scfClassType *object, A a, B b, C c, D d)
| Constructor.
template<typename A , typename B , typename C , typename D , typename E >
| scfImplementationPooled (scfClassType *object, A a, B b, C c, D d, E e)
| Constructor.
## Protected Attributes
Pool * | scfPool
| Pointer to the pool this instance is from.

## Detailed Description

### template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>
class scfImplementationPooled< Super, Allocator, Locked >

Derive an SCF implementation from this class to have it pooled.

- The Super template argument is the scfImplementation...<> class you would normally use.
- Locked specifies whether the pool should be locked for allocations. Use it if allocations may be made from different threads.

       class csFoo :
         public scfImplementationPooled<scfImplementation1<csFoo,
                                                           iFoo> >
       {
         ...
       };

- A pooled class must needs to have the scfPooledImplementationType class in its initializer list:

         csFoo () : scfPooledImplementationType (this) { ... }

- To obtain an instance of Class, use new with the pool object as the placement argument:

         csFoo::Pool fooPool;
         ...
         csRef<csFoo> foo; foo.AttachNew (new (fooPool) csFoo);

Definition at line 66 of file pooledscfclass.h.

## Constructor & Destructor Documentation

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>

scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object | ) | `[inline]`

Constructor.

Call from the derived class with 'this' as first argument.

Definition at line 167 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>
template<typename A >

scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object,
|  | A | a
| ) |  | `[inline]`

Constructor.

Call from the derived class with 'this' as first argument.

Definition at line 170 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>
template<typename A , typename B >

scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object,
|  | A | a,
|  | B | b
| ) |  | `[inline]`

Constructor.

Call from the derived class with 'this' as first argument.

Definition at line 173 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>
template<typename A , typename B , typename C >

scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object,
|  | A | a,
|  | B | b,
|  | C | c
| ) |  | `[inline]`

Constructor.

Call from the derived class with 'this' as first argument.

Definition at line 176 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>
template<typename A , typename B , typename C , typename D >

scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object,
|  | A | a,
|  | B | b,
|  | C | c,
|  | D | d
| ) |  | `[inline]`

Constructor.

Call from the derived class with 'this' as first argument.

Definition at line 179 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>
template<typename A , typename B , typename C , typename D , typename E >

scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object,
|  | A | a,
|  | B | b,
|  | C | c,
|  | D | d,
|  | E | e
| ) |  | `[inline]`

Constructor.

Call from the derived class with 'this' as first argument.

Definition at line 182 of file pooledscfclass.h.

## Member Function Documentation

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>

void scfImplementationPooled< Super, Allocator, Locked >::DecRef | ( |  | ) | `[inline]`

DecRef() implementation that returns the object to the pool.

Definition at line 154 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>

void scfImplementationPooled< Super, Allocator, Locked >::operator delete | ( | void * | instance,
|  | Pool & | p
| ) |  | `[inline]`

Recycle a new instance of a pooled SCF class.

Definition at line 134 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>

void scfImplementationPooled< Super, Allocator, Locked >::operator delete | ( | void * | instance | ) | `[inline]`

Recycle a new instance of a pooled SCF class.

Definition at line 145 of file pooledscfclass.h.

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>

void* scfImplementationPooled< Super, Allocator, Locked >::operator new | ( | size_t | n,
|  | Pool & | p
| ) |  | `[inline]`

Allocate a new instance of a pooled SCF class.

Definition at line 106 of file pooledscfclass.h.

## Member Data Documentation

template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc, bool Locked = false>

Pool* scfImplementationPooled< Super, Allocator, Locked >::scfPool`[protected]`

Pointer to the pool this instance is from.

Definition at line 103 of file pooledscfclass.h.

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

- csutil/pooledscfclass.h