|
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 */ |