home *** CD-ROM | disk | FTP | other *** search
- /*
- *****************************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright Taligent, Inc., 1996 *
- * (C) Copyright International Business Machines Corporation, 1996-1999 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *****************************************************************************************
- */
- // $Revision: 1.3 $
- //===============================================================================
- //
- // File locmap.hpp : Locale Mapping Classes
- //
- //
- //
- // Created by: Helena Shih
- //
- // Modification History:
- //
- // Date Name Description
- // 3/11/97 aliu Added setId().
- // 4/20/99 Madhu Added T_convertToPosix()
- //===============================================================================
- #ifndef LOCMAP_H
- #define LOCMAP_H
-
- #include "utypes.h"
- #ifdef XP_CPLUSPLUS
- class Locale;
- /////////////////////////////////////////////////
- //
- // Internal Classes for LCID <--> POSIX Mapping
- //
- /////////////////////////////////////////////////
-
- class ILcidPosixElement
- {
- public:
- ILcidPosixElement(uint32_t, const char*);
-
- ILcidPosixElement();
- ILcidPosixElement(const ILcidPosixElement&);
- ILcidPosixElement& operator=(const ILcidPosixElement&);
-
- ~ILcidPosixElement();
-
- private:
- int32_t setId(const char* id);
- enum { MAX_ID_LENGTH = 8 };
-
- uint32_t fHostID;
- char fPosixID[MAX_ID_LENGTH];
-
- friend class ILcidPosixMap;
- };
-
- class ILcidPosixMap
- {
- public:
-
- ILcidPosixMap();
- void initialize (uint32_t hostID,
- const char* posixID,
- uint32_t totalNumberOfRegions = 1);
-
- ~ILcidPosixMap();
-
- void addRegion (uint32_t hostID,
- const char* posixID);
-
- uint16_t hostLangID(void) const
- { return fHostLangID; };
-
- const char* posixLangID(void) const
- { return fPosixLangID; };
-
- uint32_t hostID(const char* fromPosixID) const;
- const char* posixID(uint32_t fromHostID) const;
-
- static const char* fgWildCard;
-
-
- private:
- ILcidPosixMap(const ILcidPosixMap&);
- ILcidPosixMap& operator=(const ILcidPosixMap&);
-
- uint16_t fHostLangID;
- char fPosixLangID[3];
-
- ILcidPosixElement* fRegionMaps;
- uint32_t fMapSize;
- uint32_t fNumRegions;
- };
-
- //
-
- class IGlobalLocales {
- public:
- static void initializeMapRegions(void);
- static const char* convertToPosix(uint32_t hostid);
- static uint32_t convertToLCID(const char* posixID);
- static uint16_t languageLCID(uint32_t hostID);
- protected:
- IGlobalLocales() { }
- IGlobalLocales(const IGlobalLocales& that) { }
- IGlobalLocales& operator=(const IGlobalLocales& that) { return *this;}
- private:
-
- static int32_t fgLocaleCount;
- static uint32_t fgStdLang;
- static const uint32_t kMapSize;
- static ILcidPosixMap * fgPosixIDmap;
-
- protected:
- ~IGlobalLocales() { }
- };
-
- #else
- U_CAPI const char* U_EXPORT2 T_convertToPosix(uint32_t hostid);
- #endif
- #endif
-
-
-
-