#include <CachedFactory.h>
Collaboration diagram for Loki::CachedFactory< AbstractProduct, IdentifierType, CreatorParmTList, EncapsulationPolicy, CreationPolicy, EvictionPolicy, StatisticPolicy, FactoryErrorPolicy, ObjVector >:
Public Types | |
typedef NP::ProductReturn | ProductReturn |
Public Member Functions | |
CachedFactory () | |
~CachedFactory () | |
bool | Register (const IdentifierType &id, ProductCreator creator) |
template<class PtrObj, typename CreaFn> | |
bool | Register (const IdentifierType &id, const PtrObj &p, CreaFn fn) |
bool | Unregister (const IdentifierType &id) |
std::vector< IdentifierType > & | RegisteredIds () |
Return the registered ID in this Factory. | |
ProductReturn | CreateObject (const IdentifierType &id) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9, Parm10 p10) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9, Parm10 p10, Parm11 p11) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9, Parm10 p10, Parm11 p11, Parm12 p12) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9, Parm10 p10, Parm11 p11, Parm12 p12, Parm13 p13) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9, Parm10 p10, Parm11 p11, Parm12 p12, Parm13 p13, Parm14 p14) |
ProductReturn | CreateObject (const IdentifierType &id, Parm1 p1, Parm2 p2, Parm3 p3, Parm4 p4, Parm5 p5, Parm6 p6, Parm7 p7, Parm8 p8, Parm9 p9, Parm10 p10, Parm11 p11, Parm12 p12, Parm13 p13, Parm14 p14, Parm15 p15) |
void | ReleaseObject (ProductReturn &object) |
Use this function to release the object. | |
void | displayCacheType () |
display the cache configuration | |
Protected Member Functions | |
virtual void | remove (AbstractProduct *const pProduct) |
This class acts as a Factory (it creates objects) but also keeps the already created objects to prevent long constructions time.
Note this implementation do not retain ownership.
Definition at line 660 of file CachedFactory.h.
void Loki::CachedFactory< AbstractProduct, IdentifierType, CreatorParmTList, EncapsulationPolicy, CreationPolicy, EvictionPolicy, StatisticPolicy, FactoryErrorPolicy, ObjVector >::ReleaseObject | ( | ProductReturn & | object | ) | [inline] |
Use this function to release the object.
if execution brakes in this function then you tried to release an object that wasn't provided by this Cache ... which is bad :-)
Definition at line 1140 of file CachedFactory.h.