//Copyright 2020 Siemens Digital Industries Software //================================================== //Copyright $2010. //Siemens Product Lifecycle Management Software Inc. //All Rights Reserved. //================================================== //Copyright 2020 Siemens Digital Industries Software /** @file Contains environment variable name mapping methods, based on prefix replacements.
The mapping can be used to help renaming environment variables, e.g. from OLDPREFIX_nametrailer to NEWPREFIX_nametrailer. The class can only be constructed once and the singleton can be accessed through a static function. Non-member functions are available in the Teamcenter namespace for convenience. If a name prefix mapping such as "OLDPREFIX_" ==> "NEWPREFIX_" is defined then the system automatically accesses the new name "NEWPREFIX_nametrailer" even if the old source code still reference "OLDPREFIX_nametrailer" for as long as all access to names is routed through this mapping table. */ #ifndef BASE_UTILS_OSENVNAMEMAPPING_HXX #define BASE_UTILS_OSENVNAMEMAPPING_HXX #include #include #include namespace Teamcenter { class OSEnvNameMapping { public: /** Retrieves the singleton instance */ static OSEnvNameMapping& getInstance(); /** Adds a name prefix mapping, e.g. from "OLDPREFIX_" to "NEWPREFIX_".
Subsequent calls to getMappedName() with "OLDPREFIX_nametrailer" will return "NEWPREFIX_nametrailer" */ void addPrefixMapping( const std::string & oldPrefix, /**< (I) The name prefix that should be mapped to a new_prefix */ const std::string & newPrefix /**< (I) The replacement prefix */ ); /** Removes the prefix mapping that has previously been associated through a call to addPrefixMapping()
Subsequent calls to getMappedName() with "OLDPREFIX_nametrailer" will return "OLDPREFIX_nametrailer" */ void removePrefixMapping( const std::string &oldPrefix /**< (I) The name prefix that should no longer be mapped to a new prefix */ ); /** Returns the mapped name that applies to the provided name.
E.g. it returns "NEWPREFIX_nametrailer" for an input "OLDPREFIX_nametrailer" if the mappings "OLDPREFIX_" to "NEWPREFIX_" has been set through addPrefixMapping(). @returns The mapped name */ std::string getMappedName( const std::string & originalName /**< (I) The name to be checked against mapping */ ) const; /** Retrieves the actual map of prefixes. */ const std::map< std::string, std::string > & getNamePrefixMap() const; private: OSEnvNameMapping(); virtual ~OSEnvNameMapping(); /** The prefix mapping */ std::map< std::string, std::string > m_namePrefixMap; }; } #include #endif