1 /* 2 ********************************************************************** 3 * Copyright (C) 2005-2006, 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 public: 32 CharsetDetector(UErrorCode &status); 33 34 ~CharsetDetector(); 35 36 void setText(const char *in, int32_t len); 37 38 const CharsetMatch * const *detectAll(int32_t &maxMatchesFound, UErrorCode &status); 39 40 const CharsetMatch *detect(UErrorCode& status); 41 42 void setDeclaredEncoding(const char *encoding, int32_t len) const; 43 44 UBool setStripTagsFlag(UBool flag); 45 46 UBool getStripTagsFlag() const; 47 48 // const char *getCharsetName(int32_t index, UErrorCode& status) const; 49 50 static int32_t getDetectableCount(); 51 }; 52 53 U_NAMESPACE_END 54 55 #endif 56 #endif /* __CSDETECT_H */ 57