|
1 /* |
|
2 ********************************************************************** |
|
3 * Copyright (C) 2005-2013, International Business Machines |
|
4 * Corporation and others. All Rights Reserved. |
|
5 ********************************************************************** |
|
6 */ |
|
7 |
|
8 #ifndef __CSDETECT_H |
|
9 #define __CSDETECT_H |
|
10 |
|
11 #include "unicode/uobject.h" |
|
12 |
|
13 #if !UCONFIG_NO_CONVERSION |
|
14 |
|
15 U_NAMESPACE_BEGIN |
|
16 |
|
17 class InputText; |
|
18 class CharsetRecognizer; |
|
19 class CharsetMatch; |
|
20 |
|
21 class CharsetDetector : public UMemory |
|
22 { |
|
23 private: |
|
24 InputText *textIn; |
|
25 CharsetMatch **resultArray; |
|
26 int32_t resultCount; |
|
27 UBool fStripTags; // If true, setText() will strip tags from input text. |
|
28 UBool fFreshTextSet; |
|
29 static void setRecognizers(UErrorCode &status); |
|
30 |
|
31 UBool *fEnabledRecognizers; // If not null, active set of charset recognizers had |
|
32 // been changed from the default. The array index is |
|
33 // corresponding to fCSRecognizers. See setDetectableCharset(). |
|
34 |
|
35 public: |
|
36 CharsetDetector(UErrorCode &status); |
|
37 |
|
38 ~CharsetDetector(); |
|
39 |
|
40 void setText(const char *in, int32_t len); |
|
41 |
|
42 const CharsetMatch * const *detectAll(int32_t &maxMatchesFound, UErrorCode &status); |
|
43 |
|
44 const CharsetMatch *detect(UErrorCode& status); |
|
45 |
|
46 void setDeclaredEncoding(const char *encoding, int32_t len) const; |
|
47 |
|
48 UBool setStripTagsFlag(UBool flag); |
|
49 |
|
50 UBool getStripTagsFlag() const; |
|
51 |
|
52 // const char *getCharsetName(int32_t index, UErrorCode& status) const; |
|
53 |
|
54 static int32_t getDetectableCount(); |
|
55 |
|
56 |
|
57 static UEnumeration * getAllDetectableCharsets(UErrorCode &status); |
|
58 UEnumeration * getDetectableCharsets(UErrorCode &status) const; |
|
59 void setDetectableCharset(const char *encoding, UBool enabled, UErrorCode &status); |
|
60 }; |
|
61 |
|
62 U_NAMESPACE_END |
|
63 |
|
64 #endif |
|
65 #endif /* __CSDETECT_H */ |