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-2008, International Business Machines
6  *   Corporation and others.  All Rights Reserved.
7  **********************************************************************
8  */
9 
10 #ifndef __INPUTEXT_H
11 #define __INPUTEXT_H
12 
13 /**
14  * \file
15  * \internal
16  *
17  * This is an internal header for the Character Set Detection code. The
18  * name is probably too generic...
19  */
20 
21 
22 #include "unicode/uobject.h"
23 
24 #if !UCONFIG_NO_CONVERSION
25 
26 U_NAMESPACE_BEGIN
27 
28 class InputText : public UMemory
29 {
30     // Prevent copying
31     InputText(const InputText &);
32 public:
33     InputText(UErrorCode &status);
34     ~InputText();
35 
36     void setText(const char *in, int32_t len);
37     void setDeclaredEncoding(const char *encoding, int32_t len);
38     UBool isSet() const;
39     void MungeInput(UBool fStripTags);
40 
41     // The text to be checked.  Markup will have been
42     //   removed if appropriate.
43     uint8_t    *fInputBytes;
44     int32_t     fInputLen;          // Length of the byte data in fInputBytes.
45     // byte frequency statistics for the input text.
46     //   Value is percent, not absolute.
47     //   Value is rounded up, so zero really means zero occurences.
48     int16_t  *fByteStats;
49     UBool     fC1Bytes;          // True if any bytes in the range 0x80 - 0x9F are in the input;false by default
50     char     *fDeclaredEncoding;
51 
52     const uint8_t           *fRawInput;     // Original, untouched input bytes.
53     //  If user gave us a byte array, this is it.
54     //  If user gave us a stream, it's read to a
55     //   buffer here.
56     int32_t                  fRawLength;    // Length of data in fRawInput array.
57 
58 };
59 
60 U_NAMESPACE_END
61 
62 #endif
63 #endif /* __INPUTEXT_H */
64