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.
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) |
Recycle a new instance of a pooled SCF class. | |
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) | |
Recycle a new instance of a pooled SCF class. | |
template<typename A , typename B , typename C , typename D > | |
scfImplementationPooled (scfClassType *object, A a, B b, C c, D d) | |
Recycle a new instance of a pooled SCF class. | |
template<typename A , typename B , typename C > | |
scfImplementationPooled (scfClassType *object, A a, B b, C c) | |
Recycle a new instance of a pooled SCF class. | |
template<typename A , typename B > | |
scfImplementationPooled (scfClassType *object, A a, B b) | |
Recycle a new instance of a pooled SCF class. | |
template<typename A > | |
scfImplementationPooled (scfClassType *object, A a) | |
Recycle a new instance of a pooled SCF class. | |
scfImplementationPooled (scfClassType *object) | |
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
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.
scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object, | |
A | a | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 170 of file pooledscfclass.h.
scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object, | |
A | a, | |||
B | b | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 173 of file pooledscfclass.h.
scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object, | |
A | a, | |||
B | b, | |||
C | c | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 176 of file pooledscfclass.h.
scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object, | |
A | a, | |||
B | b, | |||
C | c, | |||
D | d | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 179 of file pooledscfclass.h.
scfImplementationPooled< Super, Allocator, Locked >::scfImplementationPooled | ( | scfClassType * | object, | |
A | a, | |||
B | b, | |||
C | c, | |||
D | d, | |||
E | e | |||
) | [inline] |
Recycle a new instance of a pooled SCF class.
Definition at line 182 of file pooledscfclass.h.
Member Function Documentation
void scfImplementationPooled< Super, Allocator, Locked >::DecRef | ( | ) | [inline] |
DecRef() implementation that returns the object to the pool.
Definition at line 154 of file pooledscfclass.h.
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.
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.
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
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
Generated for Crystal Space 2.0 by doxygen 1.6.1