CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/FWCore/ServiceRegistry/interface/ServiceToken.h

Go to the documentation of this file.
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