Home | History | Annotate | Download | only in i18n
      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