• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */
66