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