// Read the documentation to learn more about C++ code generator // versioning. // %X% %Q% %Z% %W% #ifndef UNIQUEENERGYMANAGER_H #define UNIQUEENERGYMANAGER_H 1 #include #include #include class Response; class UniqueEnergy; class UniqueEnergyManager { public: typedef std::multimap > NameLookup; typedef std::map SpecNumMap; UniqueEnergyManager (); ~UniqueEnergyManager(); bool addRespEnergy (const Response* response, bool isSpecDependent); void removeRespEnergy (const Response* response); void clearAll (); void updateEnergyFromResponse (const Response* response); std::set& uniqueEnergies (); public: // Additional Public Declarations protected: // Additional Protected Declarations private: UniqueEnergyManager(const UniqueEnergyManager &right); UniqueEnergyManager & operator=(const UniqueEnergyManager &right); UniqueEnergy* checkIfUnique (const RealArray& energies, const StringArray& rmfNames, const std::vector& gainFactor); static void findRmfNames (const Response* response, StringArray& rmfNames); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes std::set m_uniqueEnergies; UniqueEnergyManager::SpecNumMap m_specNumLookup; UniqueEnergyManager::NameLookup m_rmfNameLookup; // Additional Implementation Declarations }; // Class UniqueEnergyManager inline std::set& UniqueEnergyManager::uniqueEnergies () { return m_uniqueEnergies; } #endif