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