]> git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/csrucode.h
ICU-57131.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / csrucode.h
1 /*
2 **********************************************************************
3 * Copyright (C) 2005-2012, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 **********************************************************************
6 */
7
8 #ifndef __CSRUCODE_H
9 #define __CSRUCODE_H
10
11 #include "unicode/utypes.h"
12
13 #if !UCONFIG_NO_CONVERSION
14
15 #include "csrecog.h"
16
17 U_NAMESPACE_BEGIN
18
19 /**
20 * This class matches UTF-16 and UTF-32, both big- and little-endian. The
21 * BOM will be used if it is present.
22 *
23 * @internal
24 */
25 class CharsetRecog_Unicode : public CharsetRecognizer
26 {
27
28 public:
29
30 virtual ~CharsetRecog_Unicode();
31 /* (non-Javadoc)
32 * @see com.ibm.icu.text.CharsetRecognizer#getName()
33 */
34 const char* getName() const = 0;
35
36 /* (non-Javadoc)
37 * @see com.ibm.icu.text.CharsetRecognizer#match(com.ibm.icu.text.CharsetDetector)
38 */
39 UBool match(InputText* textIn, CharsetMatch *results) const = 0;
40 };
41
42
43 class CharsetRecog_UTF_16_BE : public CharsetRecog_Unicode
44 {
45 public:
46
47 virtual ~CharsetRecog_UTF_16_BE();
48
49 const char *getName() const;
50
51 UBool match(InputText* textIn, CharsetMatch *results) const;
52 };
53
54 class CharsetRecog_UTF_16_LE : public CharsetRecog_Unicode
55 {
56 public:
57
58 virtual ~CharsetRecog_UTF_16_LE();
59
60 const char *getName() const;
61
62 UBool match(InputText* textIn, CharsetMatch *results) const;
63 };
64
65 class CharsetRecog_UTF_32 : public CharsetRecog_Unicode
66 {
67 protected:
68 virtual int32_t getChar(const uint8_t *input, int32_t index) const = 0;
69 public:
70
71 virtual ~CharsetRecog_UTF_32();
72
73 const char* getName() const = 0;
74
75 UBool match(InputText* textIn, CharsetMatch *results) const;
76 };
77
78
79 class CharsetRecog_UTF_32_BE : public CharsetRecog_UTF_32
80 {
81 protected:
82 int32_t getChar(const uint8_t *input, int32_t index) const;
83
84 public:
85
86 virtual ~CharsetRecog_UTF_32_BE();
87
88 const char *getName() const;
89 };
90
91
92 class CharsetRecog_UTF_32_LE : public CharsetRecog_UTF_32
93 {
94 protected:
95 int32_t getChar(const uint8_t *input, int32_t index) const;
96
97 public:
98 virtual ~CharsetRecog_UTF_32_LE();
99
100 const char* getName() const;
101 };
102
103 U_NAMESPACE_END
104
105 #endif
106 #endif /* __CSRUCODE_H */