Home | History | Annotate | Download | only in i18n
      1 /*
      2  **********************************************************************
      3  *   Copyright (C) 2005-2012, International Business Machines
      4  *   Corporation and others.  All Rights Reserved.
      5  **********************************************************************
      6  */
      7 
      8 #ifndef __CSMATCH_H
      9 #define __CSMATCH_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 
     20 /*
     21  * CharsetMatch represents the results produced by one Charset Recognizer for one input text
     22  *              Any confidence > 0 indicates a possible match, meaning that the input bytes
     23  *              are at least legal.
     24  *
     25  *              The full results of a detect are represented by an array of these
     26  *              CharsetMatch objects, each representing a possible matching charset.
     27  *
     28  *              Note that a single charset recognizer may detect multiple closely related
     29  *              charsets, and set different names depending on the exact input bytes seen.
     30  */
     31 class CharsetMatch : public UMemory
     32 {
     33  private:
     34     InputText               *textIn;
     35     int32_t                  confidence;
     36     const char              *fCharsetName;
     37     const char              *fLang;
     38 
     39  public:
     40     CharsetMatch();
     41 
     42     /**
     43       * fully set the state of this CharsetMatch.
     44       * Called by the CharsetRecognizers to record match results.
     45       * Default (NULL) parameters for names will be filled by calling the
     46       *   corresponding getters on the recognizer.
     47       */
     48     void set(InputText               *input,
     49              const CharsetRecognizer *cr,
     50              int32_t                  conf,
     51              const char              *csName=NULL,
     52              const char              *lang=NULL);
     53 
     54     /**
     55       * Return the name of the charset for this Match
     56       */
     57     const char *getName() const;
     58 
     59     const char *getLanguage()const;
     60 
     61     int32_t getConfidence()const;
     62 
     63     int32_t getUChars(UChar *buf, int32_t cap, UErrorCode *status) const;
     64 };
     65 
     66 U_NAMESPACE_END
     67 
     68 #endif
     69 #endif /* __CSMATCH_H */
     70