dummy.hh
Go to the documentation of this file.
00001 /* -*- C++ -*-
00002  * $Id: dummy.hh 990 2005-09-14 15:17:04Z sjoyeux $
00003  */
00004 #ifndef UTILMM_SINGLETON_DUMMY_HEADER
00005 # define UTILMM_SINGLETON_DUMMY_HEADER
00006 
00007 # include <string>
00008 #include <boost/utility.hpp>
00009 
00010 #include "utilmm/singleton/bits/server_fwd.hh"
00011 
00012 namespace utilmm {
00013   namespace singleton {
00014     class dummy;
00015 
00016     namespace details {
00017       struct dummy_factory {
00018         virtual ~dummy_factory() {};
00019         virtual dummy* create() const = 0;
00020       };
00021     }
00022 
00032     class dummy :public ::boost::noncopyable {
00033     protected:
00035       dummy();
00037       virtual ~dummy() =0;
00038 
00048       static void attach(std::string const &name, details::dummy_factory const& factory);
00057       static void detach(std::string const &name);
00058 
00066       static dummy *instance(std::string const &name);
00067 
00068     private:
00069       void incr_ref() const;
00070       bool decr_ref() const;
00071 
00072       mutable size_t ref_counter;
00073 
00074       friend class utilmm::singleton::server;
00075     }; // class utilmm::singleton::dummy
00076 
00077   } // namespace utilmm::singleton
00078 } // namespace utilmm
00079 
00080 #endif // UTILMM_SINGLETON_DUMMY_HEADER
00081 


utilmm
Author(s): Sylvain Joyeux/sylvain.joyeux@m4x.org
autogenerated on Mon Oct 6 2014 03:17:01