Loki::CachedFactory< AbstractProduct, IdentifierType, CreatorParmTList, EncapsulationPolicy, CreationPolicy, EvictionPolicy, StatisticPolicy, FactoryErrorPolicy, ObjVector > Class Template Reference
[Cached Factory]
Factory with caching support.
More...
#include <CachedFactory.h>
List of all members.
|
Public Member Functions |
std::vector< IdentifierType > & | RegisteredIds () |
| Return the registered ID in this Factory.
|
void | ReleaseObject (ProductReturn &object) |
| Use this function to release the object.
|
void | displayCacheType () |
| display the cache configuration
|
Detailed Description
template<class AbstractProduct, typename IdentifierType, typename CreatorParmTList = NullType, template< class > class EncapsulationPolicy = SimplePointer, class CreationPolicy = AlwaysCreate, template< typename, typename > class EvictionPolicy = EvictRandom, class StatisticPolicy = NoStatisticPolicy, template< typename, class > class FactoryErrorPolicy = DefaultFactoryError, class ObjVector = std::vector<AbstractProduct*>>
class Loki::CachedFactory< AbstractProduct, IdentifierType, CreatorParmTList, EncapsulationPolicy, CreationPolicy, EvictionPolicy, StatisticPolicy, FactoryErrorPolicy, ObjVector >
Factory with caching support.
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.
Member Function Documentation
template<class AbstractProduct , typename IdentifierType , typename CreatorParmTList = NullType, template< class > class EncapsulationPolicy = SimplePointer, class CreationPolicy = AlwaysCreate, template< typename, typename > class EvictionPolicy = EvictRandom, class StatisticPolicy = NoStatisticPolicy, template< typename, class > class FactoryErrorPolicy = DefaultFactoryError, class ObjVector = std::vector<AbstractProduct*>>
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 :-)
The documentation for this class was generated from the following file: