00001 #ifndef ServiceRegistry_ServiceToken_h 00002 #define ServiceRegistry_ServiceToken_h 00003 // -*- C++ -*- 00004 // 00005 // Package: ServiceRegistry 00006 // Class : ServiceToken 00007 // 00018 // 00019 // Original Author: Chris Jones 00020 // Created: Tue Sep 6 18:31:44 EDT 2005 00021 // $Id: ServiceToken.h,v 1.4 2006/08/08 00:37:37 chrjones Exp $ 00022 // 00023 00024 // system include files 00025 #include "boost/shared_ptr.hpp" 00026 00027 // user include files 00028 00029 // forward declarations 00030 namespace edm { 00031 class ServiceRegistry; 00032 class ActivityRegistry; 00033 00034 namespace serviceregistry { 00035 class ServicesManager; 00036 } 00037 00038 class ServiceToken 00039 { 00040 friend class edm::ServiceRegistry; 00041 friend class edm::serviceregistry::ServicesManager; 00042 public: 00043 ServiceToken() {} 00044 //virtual ~ServiceToken(); 00045 00046 // ---------- const member functions --------------------- 00047 00048 // ---------- static member functions -------------------- 00049 00050 // ---------- member functions --------------------------- 00051 00053 void connectTo(ActivityRegistry&); 00055 void connect(ActivityRegistry&); 00056 00058 void copySlotsTo(ActivityRegistry&); 00060 void copySlotsFrom(ActivityRegistry&); 00061 00062 private: 00063 ServiceToken(boost::shared_ptr<edm::serviceregistry::ServicesManager> iManager): 00064 manager_(iManager) {} 00065 00066 //ServiceToken(const ServiceToken&); // stop default 00067 00068 //const ServiceToken& operator=(const ServiceToken&); // stop default 00069 00070 // ---------- member data -------------------------------- 00071 boost::shared_ptr<edm::serviceregistry::ServicesManager> manager_; 00072 }; 00073 } 00074 00075 #endif