1/*
2 * Copyright 2016, Haiku, inc.
3 * Distributed under terms of the MIT license.
4 */
5
6
7#ifndef TEXTENCODING_H
8#define TEXTENCODING_H
9
10
11#include <String.h>
12
13#include <stddef.h>
14
15
16struct UConverter;
17
18
19namespace BPrivate {
20
21
22class BTextEncoding {
23public:
24								BTextEncoding(BString name);
25								BTextEncoding(const char* data, size_t length);
26
27								~BTextEncoding();
28
29			status_t			InitCheck();
30			BString				GetName();
31
32			status_t			Encode(const char* input, size_t& inputLength,
33									char* output, size_t& outputLength);
34			status_t			Decode(const char* input, size_t& inputLength,
35									char* output, size_t& outputLength);
36			status_t			Flush(char* output, size_t& outputLength);
37
38private:
39			BString				fName;
40
41			UConverter*			fUtf8Converter;
42			UConverter*			fConverter;
43};
44
45
46};
47
48
49#endif /* TEXTENCODING_H */
50