libpsynth 0.2.1
Public Types | Public Member Functions | Protected Member Functions | Friends
psynth::base::restricted_factory_manager< Key, BasePtr, Args > Class Template Reference

A factory manager that is mutable through special detail::factory_access class. More...

#include <factory_manager.hpp>

List of all members.

Public Types

typedef Key key_type
typedef BasePtr pointer_type
typedef pointee< BasePtr >::type base_type
typedef std::function
< pointer_type(Args...)> 
factory_method
typedef map_key_iterator< Key,
factory_method > 
iterator

Public Member Functions

pointer_type create (const Key &, Args...)
size_t size ()
iterator begin ()
iterator end ()

Protected Member Functions

template<class Concrete >
void add (const Key &k)
void add (const Key &k, factory_method fn)
void del (const Key &k)

Friends

class detail::factory_access< restricted_factory_manager >

Detailed Description

template<class Key, class BasePtr, typename... Args>
class psynth::base::restricted_factory_manager< Key, BasePtr, Args >

A factory manager that is mutable through special detail::factory_access class.


Member Typedef Documentation

template<class Key, class BasePtr, typename... Args>
typedef pointee<BasePtr>::type psynth::base::restricted_factory_manager< Key, BasePtr, Args >::base_type
template<class Key, class BasePtr, typename... Args>
typedef std::function<pointer_type (Args ...)> psynth::base::restricted_factory_manager< Key, BasePtr, Args >::factory_method
template<class Key, class BasePtr, typename... Args>
typedef map_key_iterator<Key, factory_method> psynth::base::restricted_factory_manager< Key, BasePtr, Args >::iterator
template<class Key, class BasePtr, typename... Args>
typedef Key psynth::base::restricted_factory_manager< Key, BasePtr, Args >::key_type
template<class Key, class BasePtr, typename... Args>
typedef BasePtr psynth::base::restricted_factory_manager< Key, BasePtr, Args >::pointer_type

Member Function Documentation

template<class Key, class BasePtr, typename... Args>
template<class Concrete >
void psynth::base::restricted_factory_manager< Key, BasePtr, Args >::add ( const Key &  k) [protected]
template<class Key, class BasePtr, typename... Args>
void psynth::base::restricted_factory_manager< Key, BasePtr, Args >::add ( const Key &  k,
factory_method  fn 
) [protected]
template<class Key, class BasePtr, typename... Args>
iterator psynth::base::restricted_factory_manager< Key, BasePtr, Args >::begin ( ) [inline]
template<class Key, class BasePtr, typename... Args>
pointer_type psynth::base::restricted_factory_manager< Key, BasePtr, Args >::create ( const Key &  ,
Args...   
)
template<class Key, class BasePtr, typename... Args>
void psynth::base::restricted_factory_manager< Key, BasePtr, Args >::del ( const Key &  k) [protected]
template<class Key, class BasePtr, typename... Args>
iterator psynth::base::restricted_factory_manager< Key, BasePtr, Args >::end ( ) [inline]
template<class Key, class BasePtr, typename... Args>
size_t psynth::base::restricted_factory_manager< Key, BasePtr, Args >::size ( ) [inline]

Friends And Related Function Documentation

template<class Key, class BasePtr, typename... Args>
friend class detail::factory_access< restricted_factory_manager > [friend]

The documentation for this class was generated from the following file: