RSC  0.17.1
rsc::patterns::Factory< Key, Interface >::ImplMapProxy Class Reference

This object presents the registered implementations in a form very similar to a STL container. More...

#include <Factory.h>

Inheritance diagram for rsc::patterns::Factory< Key, Interface >::ImplMapProxy:
Inheritance graph
Collaboration diagram for rsc::patterns::Factory< Key, Interface >::ImplMapProxy:
Collaboration graph

Public Member Functions

void register_ (const KeyType &key, const CreateFunction &create_function_)
 
void unregister (const KeyType &key)
 
- Public Member Functions inherited from rsc::patterns::AssociativeProxy< ImplMap >
 AssociativeProxy (ImplMap &container)
 
detail::force_const< typename pass_through::result_type >::type operator[] (const key_type &key) const
 
pass_through::result_type operator[] (const key_type &key)
 
base_type::const_iterator find (const key_type &key) const throw ()
 
base_type::iterator find (const key_type &key) throw ()
 
- Public Member Functions inherited from rsc::patterns::ContainerProxy< ImplMap, detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through > >
 ContainerProxy (ImplMap &container)
 
 ContainerProxy (ImplMap &container, P1 p1)
 
 ContainerProxy (ImplMap &container, P1 p1, P2 p2)
 
const_iterator begin () const throw ()
 
iterator begin () throw ()
 
const_iterator end () const throw ()
 
iterator end () throw ()
 
size_type size () const throw ()
 
bool empty () const throw ()
 

Private Types

typedef AssociativeProxy< ImplMapbase_type
 

Private Member Functions

 ImplMapProxy (Factory< Key, Interface > &owner)
 

Private Attributes

Factory< Key, Interface > & owner
 

Friends

class Factory< Key, Interface >
 

Additional Inherited Members

- Public Types inherited from rsc::patterns::AssociativeProxy< ImplMap >
typedef ImplMap::key_type key_type
 
typedef boost::remove_reference< typename pass_through::result_type >::type mapped_type
 
typedef detail::pair_adapter< typename ImplMap::key_type, typename ImplMap::mapped_type, pass_throughbase_accessor_type
 
typedef ContainerProxy< ImplMap, base_accessor_typebase_type
 
- Public Types inherited from rsc::patterns::ContainerProxy< ImplMap, detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through > >
typedef ImplMap::size_type size_type
 
typedef ImplMap::value_type value_type
 
typedef ImplMap::pointer pointer
 
typedef ImplMap::const_reference const_reference
 
typedef ImplMap::reference reference
 
typedef boost::transform_iterator< detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through >, typename ImplMap::const_iterator, typename detail::force_const< typename detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through >::result_type >::type > const_iterator
 
typedef boost::transform_iterator< detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through >, typename ImplMap::iterator, typename detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through >::result_type > iterator
 
typedef iterator::difference_type difference_type
 
- Protected Types inherited from rsc::patterns::ContainerProxy< ImplMap, detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through > >
typedef ImplMap container_type
 
typedef detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_throughaccessor_type
 
- Protected Attributes inherited from rsc::patterns::ContainerProxy< ImplMap, detail::pair_adapter< ImplMap::key_type, ImplMap::mapped_type, pass_through > >
container_typecontainer
 
accessor_type accessor
 

Detailed Description

template<typename Key, typename Interface>
class rsc::patterns::Factory< Key, Interface >::ImplMapProxy

This object presents the registered implementations in a form very similar to a STL container.

In addition, implementations can be registered or unregistered using additional functions.

Definition at line 153 of file Factory.h.

Member Typedef Documentation

template<typename Key, typename Interface>
typedef AssociativeProxy<ImplMap> rsc::patterns::Factory< Key, Interface >::ImplMapProxy::base_type
private

Definition at line 167 of file Factory.h.

Constructor & Destructor Documentation

template<typename Key , typename Interface >
rsc::patterns::Factory< Key, Interface >::ImplMapProxy::ImplMapProxy ( Factory< Key, Interface > &  owner)
private

Definition at line 256 of file Factory.h.

Member Function Documentation

template<typename Key , typename Interface >
void rsc::patterns::Factory< Key, Interface >::ImplMapProxy::register_ ( const KeyType key,
const CreateFunction create_function_ 
)
Exceptions
std::invalid_argument

Definition at line 262 of file Factory.h.

References rsc::patterns::Factory< Key, Interface >::ImplMapProxy::owner.

template<typename Key , typename Interface >
void rsc::patterns::Factory< Key, Interface >::ImplMapProxy::unregister ( const KeyType key)
Exceptions
NoSuchImpl

Definition at line 268 of file Factory.h.

References rsc::patterns::Factory< Key, Interface >::ImplMapProxy::owner.

Friends And Related Function Documentation

template<typename Key, typename Interface>
friend class Factory< Key, Interface >
friend

Definition at line 154 of file Factory.h.

Member Data Documentation

template<typename Key, typename Interface>
Factory<Key, Interface>& rsc::patterns::Factory< Key, Interface >::ImplMapProxy::owner
private

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