scfImplementationPooled< Super > 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 > | 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>
class scfImplementationPooled< Super >
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 >::scfImplementationPooled | ( | scfClassType * | object | ) | [inline] |
Constructor.
Call from the derived class with 'this' as first argument.
Definition at line 171 of file pooledscfclass.h.
Member Function Documentation
void scfImplementationPooled< Super >::DecRef | ( | ) | [inline] |
DecRef() implementation that returns the object to the pool.
Definition at line 157 of file pooledscfclass.h.
void scfImplementationPooled< Super >::operator delete | ( | void * | instance, | |
Pool & | p | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 140 of file pooledscfclass.h.
Referenced by scfImplementationPooled< scfImplementationExt0< csParasiticDataBufferPooled, csParasiticDataBufferBase > >::operator delete().
void* scfImplementationPooled< Super >::operator new | ( | size_t | n, | |
Pool & | p | |||
) | [inline] |
Member Data Documentation
Pool* scfImplementationPooled< Super >::scfPool [protected] |
Pointer to the pool this instance is from.
Definition at line 104 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 by doxygen 1.4.7