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