scfImplementationPooled< Super, Allocator > Class Template Reference
[Shared Class Facility (SCF)]
Derive an SCF implementation from this class to have it pooled.
More...
#include <csutil/pooledscfclass.h>
Public Types | |
typedef scfImplementationPooled < Super, Allocator > | scfPooledImplementationType |
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) |
void | operator delete (void *instance, Pool &p) |
Recycle a new instance of a pooled SCF class. | |
template<typename A, typename B, typename C, typename D, typename E> | |
scfImplementationPooled (scfClassType *object, A a, B b, C c, D d, E e) | |
template<typename A, typename B, typename C, typename D> | |
scfImplementationPooled (scfClassType *object, A a, B b, C c, D d) | |
template<typename A, typename B, typename C> | |
scfImplementationPooled (scfClassType *object, A a, B b, C c) | |
template<typename A, typename B> | |
scfImplementationPooled (scfClassType *object, A a, B b) | |
template<typename A> | |
scfImplementationPooled (scfClassType *object, A a) | |
scfImplementationPooled (scfClassType *object) | |
Constructor. | |
Protected Attributes | |
Pool * | scfPool |
Pointer to the pool this instance is from. | |
Classes | |
class | Pool |
Detailed Description
template<typename Super, typename Allocator = CS::Memory::AllocatorMalloc>
class scfImplementationPooled< Super, Allocator >
Derive an SCF implementation from this class to have it pooled.
- The Super template argument is the scfImplementation...<> class you would normally use.
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 61 of file pooledscfclass.h.
Constructor & Destructor Documentation
scfImplementationPooled< Super, Allocator >::scfImplementationPooled | ( | scfClassType * | object | ) | [inline] |
Constructor.
Call from the derived class with 'this' as first argument.
Definition at line 156 of file pooledscfclass.h.
Member Function Documentation
void scfImplementationPooled< Super, Allocator >::DecRef | ( | ) | [inline] |
DecRef() implementation that returns the object to the pool.
Definition at line 142 of file pooledscfclass.h.
void scfImplementationPooled< Super, Allocator >::operator delete | ( | void * | instance, | |
Pool & | p | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 125 of file pooledscfclass.h.
Referenced by scfImplementationPooled< scfImplementationExt0< csParasiticDataBufferPooled, csParasiticDataBufferBase > >::operator delete().
void* scfImplementationPooled< Super, Allocator >::operator new | ( | size_t | n, | |
Pool & | p | |||
) | [inline] |
Member Data Documentation
Pool* scfImplementationPooled< Super, Allocator >::scfPool [protected] |
Pointer to the pool this instance is from.
Definition at line 97 of file pooledscfclass.h.
Referenced by scfImplementationPooled< scfImplementationExt0< csParasiticDataBufferPooled, csParasiticDataBufferBase > >::operator delete(), and scfImplementationPooled< scfImplementationExt0< csParasiticDataBufferPooled, csParasiticDataBufferBase > >::operator new().
The documentation for this class was generated from the following file:
- csutil/pooledscfclass.h
Generated for Crystal Space 1.2.1 by doxygen 1.5.3