#ifndef RCPGEOMETERREGISTRY_HPP #define RCPGEOMETERREGISTRY_HPP // // $Id: RcpGeometerRegistry.hpp,v 1.3 2001/06/14 21:04:16 hobbs Exp $ // // File: RcpGeometerRegistry.hpp // Purpose: Each instance of an absRcpGeometer will automatically call the // register method of this singleton. The class(es) responsible for updating // constants can get a list of a Geometer's from the registry when an update // is possible // Created: 29-NOV-2000 John Hobbs // // $Revision: 1.3 $ // // // Include files #include #include #include "identifiers/RCPID.hpp" namespace dgs { class absRcpGeometer; // Global definitions class RcpGeometerRegistry { public: /// Get the (sole) copy of the registry static RcpGeometerRegistry* get_instance(); /// Add a Geometer to the list of known geometers bool add(absRcpGeometer *aGeometer); /// Remove a Geometer from the list of know geometers bool remove(absRcpGeometer *aGeometer); /// Get the list of known geometers std::set known_geometers() const; /// Get the RCPID's of the currently loaded parameter sets for all geometers const std::map* environment() const; /// When an RCP geometer is refreshed, it calls this method to update the list bool update_environment(absRcpGeometer* aGeometer, edm::RCPID& itsID); private: RcpGeometerRegistry() {}; ~RcpGeometerRegistry() { _theInstance=0; } /// The pointer to the sole instance of this class static RcpGeometerRegistry* _theInstance; /// The known geometers std::map d_geometers; /// satisfy the old interface. Only use this is it's explicitly needed mutable std::set d_tmp; }; } // Constructors/Destructors // Accessors #endif //RCPGEOMETERREGISTRY_HPP