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