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