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