1 // Copyright (c) 1997 James Clark
2 // See the file COPYING for copying permission.
3 #pragma ident	"%Z%%M%	%I%	%E% SMI"
4 
5 #ifndef CharsetRegistry_INCLUDED
6 #define CharsetRegistry_INCLUDED 1
7 #ifdef __GNUG__
8 #pragma interface
9 #endif
10 
11 #include "Boolean.h"
12 #include "types.h"
13 #include "StringC.h"
14 #include "CharsetInfo.h"
15 
16 #ifdef SP_NAMESPACE
17 namespace SP_NAMESPACE {
18 #endif
19 
20 class SP_API CharsetRegistry {
21 public:
22   class SP_API Iter {
23   public:
24     virtual ~Iter();
25     virtual Boolean next(WideChar &min, WideChar &max, UnivChar &) = 0;
26   };
27   enum ISORegistrationNumber {
28     UNREGISTERED = 0,
29     ISO646_ASCII_G0 = 6,
30     ISO646_C0 = 1,
31     ISO6429 = 77,
32     ISO8859_1 = 100,
33     ISO8859_2 = 101,
34     ISO8859_3 = 109,
35     ISO8859_4 = 110,
36     ISO8859_5 = 144,
37     ISO8859_6 = 127,
38     ISO8859_7 = 126,
39     ISO8859_8 = 138,
40     ISO8859_9 = 148,
41     ISO646_JIS_G0 = 14,
42     JIS0201 = 13,
43     JIS0208 = 168,
44     JIS0212 = 159,
45     KSC5601 = 149,
46     GB2312 = 58,
47     ISO10646_UCS2 = 176,
48     ISO10646_UCS4 = 177,
49     BIG5 = 65535 // not registered
50   };
51   static ISORegistrationNumber getRegistrationNumber(const StringC &desig,
52 						     const CharsetInfo &);
53   static Iter *makeIter(ISORegistrationNumber);
54 };
55 
56 #ifdef SP_NAMESPACE
57 }
58 #endif
59 
60 #endif /* not CharsetRegistry_INCLUDED */
61