aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/icu/i18n/csdetect.h
blob: a980e6f08da89d29813ca77c16a5233419d050d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html 
/* 
 ********************************************************************** 
 *   Copyright (C) 2005-2016, International Business Machines 
 *   Corporation and others.  All Rights Reserved. 
 ********************************************************************** 
 */ 
 
#ifndef __CSDETECT_H 
#define __CSDETECT_H 
 
#include "unicode/uobject.h" 
 
#if !UCONFIG_NO_CONVERSION 
 
#include "unicode/uenum.h" 
 
U_NAMESPACE_BEGIN 
 
class InputText; 
class CharsetRecognizer; 
class CharsetMatch; 
 
class CharsetDetector : public UMemory 
{ 
private: 
    InputText *textIn; 
    CharsetMatch **resultArray; 
    int32_t resultCount; 
    UBool fStripTags;   // If true, setText() will strip tags from input text. 
    UBool fFreshTextSet; 
    static void setRecognizers(UErrorCode &status); 
 
    UBool *fEnabledRecognizers;  // If not null, active set of charset recognizers had 
                                // been changed from the default. The array index is 
                                // corresponding to fCSRecognizers. See setDetectableCharset(). 
 
public: 
    CharsetDetector(UErrorCode &status); 
 
    ~CharsetDetector(); 
 
    void setText(const char *in, int32_t len); 
 
    const CharsetMatch * const *detectAll(int32_t &maxMatchesFound, UErrorCode &status); 
 
    const CharsetMatch *detect(UErrorCode& status); 
 
    void setDeclaredEncoding(const char *encoding, int32_t len) const; 
 
    UBool setStripTagsFlag(UBool flag); 
 
    UBool getStripTagsFlag() const; 
 
//    const char *getCharsetName(int32_t index, UErrorCode& status) const; 
 
    static int32_t getDetectableCount(); 
 
 
    static UEnumeration * getAllDetectableCharsets(UErrorCode &status); 
    UEnumeration * getDetectableCharsets(UErrorCode &status) const; 
    void setDetectableCharset(const char *encoding, UBool enabled, UErrorCode &status); 
}; 
 
U_NAMESPACE_END 
 
#endif 
#endif /* __CSDETECT_H */