server.hh
Go to the documentation of this file.
00001 /* -*- C++ -*-
00002  * $Id: server.hh 970 2005-04-08 16:30:46Z sjoyeux $
00003  */
00004 #ifndef UTILMM_SINGLETON_SERVER_HEADER
00005 # define UTILMM_SINGLETON_SERVER_HEADER
00006 
00007 # include <map>
00008 
00009 # include "boost/thread/recursive_mutex.hpp"
00010 
00011 # include "utilmm/singleton/bits/dummy.hh"
00012 
00013 namespace utilmm {
00014   namespace singleton {
00015 
00025     class server :public ::boost::noncopyable {
00026     private:
00027       server();
00028       ~server();
00029 
00030       static server &instance();
00031       
00032       void attach(std::string const &name, details::dummy_factory const& factory);
00033       bool detach(std::string const &name);
00034 
00035       dummy *get(std::string const &name) const;
00036 
00037       typedef std::map<std::string, dummy *> single_map;
00038 
00039       single_map singletons;
00040 
00041       static server *the_instance;
00042 
00043       typedef boost::recursive_mutex mutex_type;
00044       typedef mutex_type::scoped_lock lock_type;
00045 
00046       static mutex_type sing_mtx;
00047 
00048       friend class utilmm::singleton::dummy;
00049     }; // class utilmm::singleton::server
00050 
00051   } // namespace utilmm::singleton
00052 } // namespace utilmm
00053 
00054 #endif // UTILMM_SINGLETON_SERVER_HEADER
00055 


utilmm
Author(s): Sylvain Joyeux/sylvain.joyeux@m4x.org
autogenerated on Thu Jan 2 2014 11:38:31