// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 2005-2012, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** */ #ifndef __CSMATCH_H #define __CSMATCH_H #include "unicode/uobject.h" #if !UCONFIG_NO_CONVERSION U_NAMESPACE_BEGIN class InputText; class CharsetRecognizer; /* * CharsetMatch represents the results produced by one Charset Recognizer for one input text * Any confidence > 0 indicates a possible match, meaning that the input bytes * are at least legal. * * The full results of a detect are represented by an array of these * CharsetMatch objects, each representing a possible matching charset. * * Note that a single charset recognizer may detect multiple closely related * charsets, and set different names depending on the exact input bytes seen. */ class CharsetMatch : public UMemory { private: InputText *textIn; int32_t confidence; const char *fCharsetName; const char *fLang; public: CharsetMatch(); /** * fully set the state of this CharsetMatch. * Called by the CharsetRecognizers to record match results. * Default (NULL) parameters for names will be filled by calling the * corresponding getters on the recognizer. */ void set(InputText *input, const CharsetRecognizer *cr, int32_t conf, const char *csName=NULL, const char *lang=NULL); /** * Return the name of the charset for this Match */ const char *getName() const; const char *getLanguage()const; int32_t getConfidence()const; int32_t getUChars(UChar *buf, int32_t cap, UErrorCode *status) const; }; U_NAMESPACE_END #endif #endif /* __CSMATCH_H */