ScummVM API documentation
dbcs-str.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef COMMON_DBCS_STR_H
23#define COMMON_DBCS_STR_H
24
25#include "common/scummsys.h"
26#include "common/util.h"
27#include "common/str-enc.h"
28#include "common/str-base.h"
29
30namespace Common {
31
32class String;
33
41class DBCSString : public BaseString<uint16> {
42public:
43 typedef uint32 unsigned_type;
44public:
46 constexpr DBCSString() : BaseString<uint16>() {}
47
49 explicit DBCSString(const value_type *str) : BaseString<uint16>(str) {}
50
52 DBCSString(const value_type *str, uint32 len) : BaseString<uint16>(str, len) {}
53
55 DBCSString(const value_type *beginP, const value_type *endP) : BaseString<uint16>(beginP, endP) {}
56
58 DBCSString(const DBCSString &str) : BaseString<uint16>(str) {}
59
61 DBCSString(DBCSString &&str) : BaseString<uint16>(static_cast<BaseString<uint16> &&>(str)) {}
62
64 explicit DBCSString(const char *str);
65
67 DBCSString(const char *str, uint32 len);
68
70 DBCSString(const char *beginP, const char *endP);
71
73 explicit DBCSString(const String &str);
74
76 explicit constexpr DBCSString(value_type c) : BaseString<uint16>(c) {}
77
79 DBCSString(size_t n, value_type c) : BaseString<uint16>(n, c) {}
80
83
86
89
91 DBCSString &operator=(const value_type *str);
92
94 DBCSString &operator=(const char *str);
95
97 DBCSString &operator=(value_type c);
98
101
103 DBCSString &operator+=(const value_type *str);
104
106 DBCSString &operator+=(value_type c);
107
110
112 DBCSString substr(size_t pos = 0, size_t len = npos) const;
113
114private:
115 void decodeDBCS(const char *str, uint32 len);
116
117 friend class String;
118};
119
122
124DBCSString operator+(const DBCSString &x, DBCSString::value_type y);
125
128} // End of namespace Common
129
130#endif
Definition: str-base.h:32
Definition: dbcs-str.h:41
DBCSString(const char *str)
DBCSString & operator=(const value_type *str)
DBCSString(DBCSString &&str)
Definition: dbcs-str.h:61
String convertToString() const
DBCSString & operator=(const DBCSString &str)
DBCSString(const char *beginP, const char *endP)
DBCSString & operator=(value_type c)
uint32 unsigned_type
Definition: dbcs-str.h:43
DBCSString(const value_type *str, uint32 len)
Definition: dbcs-str.h:52
DBCSString & operator+=(const DBCSString &str)
DBCSString(size_t n, value_type c)
Definition: dbcs-str.h:79
DBCSString substr(size_t pos=0, size_t len=npos) const
DBCSString & operator=(const String &str)
DBCSString & operator=(const char *str)
DBCSString(const String &str)
DBCSString(const value_type *str)
Definition: dbcs-str.h:49
constexpr DBCSString(value_type c)
Definition: dbcs-str.h:76
constexpr DBCSString()
Definition: dbcs-str.h:46
DBCSString(const value_type *beginP, const value_type *endP)
Definition: dbcs-str.h:55
DBCSString & operator=(DBCSString &&str)
DBCSString & operator+=(const value_type *str)
DBCSString(const char *str, uint32 len)
DBCSString(const DBCSString &str)
Definition: dbcs-str.h:58
DBCSString & operator+=(value_type c)
Definition: str.h:59
Definition: algorithm.h:29
DBCSString operator+(const DBCSString &x, const DBCSString &y)