#ifndef _sdet_SOverrideXMLManager_h_ #define _sdet_SOverrideXMLManager_h_ #include #include namespace utl { class Reader; class Branch; class TabulatedFunction; } namespace sdet { /** \class SOverrideXMLManager \brief Manager for SD description in XML "override" files This manager reads XML files containing SD description information which the user wants to replace "official" information taken from an offical XML file or database. The ManagerRegister should be configured so that this manager is first in line. That way it is queried before all other managers. If user-requested data is found by this manager, then the other managers are not queried. This manager can be used in cases such as simulation runs in which the user wishes to assess the effect of varying some parameter. \author T. Paul \author D. Veberic \date 11 March 2003 \date 12 Jan 2007 DV update \version $Id: SOverrideXMLManager.h 18232 2011-01-03 17:15:35Z dembinski $ \ingroup managers */ class SOverrideXMLManager : public det::VManager { public: virtual ~SOverrideXMLManager() { } VMANAGER_GETDATA_CALL(GetOverrideData, double) VMANAGER_GETDATA_CALL(GetOverrideData, int) VMANAGER_GETDATA_CALL(GetOverrideData, std::string) VMANAGER_GETDATA_CALL(GetOverrideData, std::vector) VMANAGER_GETDATA_CALL(GetOverrideData, std::vector) VMANAGER_GETDATA_CALL(GetOverrideData, std::vector) VMANAGER_GETDATA_CALL(GetOverrideData, std::list) VMANAGER_GETDATA_CALL(GetOverrideData, std::list) VMANAGER_GETDATA_CALL(GetOverrideData, std::list) VMANAGER_GETDATA_CALL(GetOverrideData, std::vector) // Tabulated data has a special getter to do the tabulation Status GetData(utl::TabulatedFunction& returnData, const std::string& componentProperty, const std::string& componentName, const IndexMap& componentIndex) const; VMANAGER_GETDATA_NOTFOUND(std::vector >) VMANAGER_GETDATA_DENIED(std::map) VMANAGER_GETDATA_DENIED(std::list >) VMANAGER_GETDATA_DENIED(std::map) VMANAGER_GETDATA_DENIED(utl::TabulatedFunctionComplexLgAmpPhase) private: // Implement generic getters with template template Status GetOverrideData(T& returnData, const std::string& componentProperty, const std::string& componentName, const IndexMap& componentIndex) const; // Return Branch for the requested data. utl::Branch FindBranch(const std::string& componentProperty, const std::string& modelType, const IndexMap& componentIndex) const; }; } // namespace sdet #endif // _sdet_SOverrideXMLManager_h_