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