Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / icu / source / i18n / csmatch.h
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 */