]> git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/csmatch.h
ICU-62141.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / csmatch.h
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 */