GCC Code Coverage Report


Directory: src/gate/
File: src/gate/encode/cxx_texts.cpp
Date: 2025-09-22 22:57:09
Exec Total Coverage
Lines: 0 139 0.0%
Functions: 0 39 0.0%
Branches: 0 62 0.0%

Line Branch Exec Source
1 /* GATE PROJECT LICENSE:
2 +----------------------------------------------------------------------------+
3 | Copyright(c) 2018-2025, Stefan Meislinger <sm@opengate.at> |
4 | All rights reserved. |
5 | |
6 | Redistribution and use in source and binary forms, with or without |
7 | modification, are permitted provided that the following conditions are met:|
8 | |
9 | 1. Redistributions of source code must retain the above copyright notice, |
10 | this list of conditions and the following disclaimer. |
11 | 2. Redistributions in binary form must reproduce the above copyright |
12 | notice, this list of conditions and the following disclaimer in the |
13 | documentation and/or other materials provided with the distribution. |
14 | |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"|
16 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
17 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
18 | ARE DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
19 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
20 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
21 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
22 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
23 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
24 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
25 | THE POSSIBILITY OF SUCH DAMAGE. |
26 +----------------------------------------------------------------------------+
27 */
28 #include "gate/encode/texts.hpp"
29 #include "gate/exceptions.hpp"
30 #include "gate/encode/texts.h"
31
32
33 namespace gate
34 {
35 namespace enc
36 {
37
38 ✗ size_t Text::detectBomType(char const* data, size_t datalen, BomTypeEnum& bomtype)
39 {
40 ✗ unsigned int tp = 0;
41 ✗ gate_size_t ret = gate_text_detect_bom(data, datalen, &tp);
42 ✗ bomtype = (BomTypeEnum)tp;
43 ✗ return ret;
44 }
45
46 ✗ void Text::loadUtf8(Stream& src, StringBuilder& dst)
47 {
48 ✗ result_t res = gate_text_load_utf8(src.c_impl(), dst.c_impl());
49 ✗ GATEXX_CHECK_EXCEPTION(res);
50 ✗ }
51 ✗ void Text::loadAnsi(Stream& src, StringBuilder& dst)
52 {
53 ✗ result_t res = gate_text_load_ansi(src.c_impl(), dst.c_impl());
54 ✗ GATEXX_CHECK_EXCEPTION(res);
55 ✗ }
56 ✗ void Text::loadUtf16LE(Stream& src, StringBuilder& dst)
57 {
58 ✗ result_t res = gate_text_load_utf16le(src.c_impl(), dst.c_impl());
59 ✗ GATEXX_CHECK_EXCEPTION(res);
60 ✗ }
61 ✗ void Text::loadUtf16BE(Stream& src, StringBuilder& dst)
62 {
63 ✗ result_t res = gate_text_load_utf16be(src.c_impl(), dst.c_impl());
64 ✗ GATEXX_CHECK_EXCEPTION(res);
65 ✗ }
66 ✗ void Text::loadUtf32LE(Stream& src, StringBuilder& dst)
67 {
68 ✗ result_t res = gate_text_load_utf32le(src.c_impl(), dst.c_impl());
69 ✗ GATEXX_CHECK_EXCEPTION(res);
70 ✗ }
71 ✗ void Text::loadUtf32BE(Stream& src, StringBuilder& dst)
72 {
73 ✗ result_t res = gate_text_load_utf32be(src.c_impl(), dst.c_impl());
74 ✗ GATEXX_CHECK_EXCEPTION(res);
75 ✗ }
76
77
78 ✗ void Text::saveUtf8(String const& src, Stream& dst, bool addbom)
79 {
80 ✗ result_t res = gate_text_save_utf8(src.c_impl(), dst.c_impl(), addbom);
81 ✗ GATEXX_CHECK_EXCEPTION(res);
82 ✗ }
83 ✗ void Text::saveAnsi(String const& src, Stream& dst)
84 {
85 ✗ result_t res = gate_text_save_ansi(src.c_impl(), dst.c_impl());
86 ✗ GATEXX_CHECK_EXCEPTION(res);
87 ✗ }
88 ✗ void Text::saveUtf16LE(String const& src, Stream& dst, bool addbom)
89 {
90 ✗ result_t res = gate_text_save_utf16le(src.c_impl(), dst.c_impl(), addbom);
91 ✗ GATEXX_CHECK_EXCEPTION(res);
92 ✗ }
93 ✗ void Text::saveUtf16BE(String const& src, Stream& dst, bool addbom)
94 {
95 ✗ result_t res = gate_text_save_utf16be(src.c_impl(), dst.c_impl(), addbom);
96 ✗ GATEXX_CHECK_EXCEPTION(res);
97 ✗ }
98 ✗ void Text::saveUtf32LE(String const& src, Stream& dst, bool addbom)
99 {
100 ✗ result_t res = gate_text_save_utf32le(src.c_impl(), dst.c_impl(), addbom);
101 ✗ GATEXX_CHECK_EXCEPTION(res);
102 ✗ }
103 ✗ void Text::saveUtf32BE(String const& src, Stream& dst, bool addbom)
104 {
105 ✗ result_t res = gate_text_save_utf32be(src.c_impl(), dst.c_impl(), addbom);
106 ✗ GATEXX_CHECK_EXCEPTION(res);
107 ✗ }
108
109 ✗ void Text::escapeC(String const& src, StringBuilder& dst)
110 {
111 ✗ result_t res = gate_text_c_escape(src.c_impl(), dst.c_impl());
112 ✗ GATEXX_CHECK_EXCEPTION(res);
113 ✗ }
114 ✗ String Text::escapeC(String const& src)
115 {
116 ✗ StringBuilder builder;
117 ✗ escapeC(src, builder);
118 ✗ return builder.toString();
119 }
120 ✗ void Text::unescapeC(String const& src, StringBuilder& dst)
121 {
122 ✗ result_t res = gate_text_c_unescape(src.c_impl(), dst.c_impl());
123 ✗ GATEXX_CHECK_EXCEPTION(res);
124 ✗ }
125 ✗ String Text::unescapeC(String const& src)
126 {
127 ✗ StringBuilder builder;
128 ✗ unescapeC(src, builder);
129 ✗ return builder.toString();
130 }
131
132
133
134
135
136
137 ✗ TextFormat::TextFormat(String const& format)
138 {
139 ✗ result_t res = gate_text_format_create(&this->impl, format.c_impl());
140 ✗ GATEXX_CHECK_ERROR(res);
141 ✗ }
142 ✗ TextFormat::~TextFormat()
143 {
144 ✗ gate_text_format_destroy(&this->impl);
145 ✗ }
146
147 ✗ void TextFormat::addText(String const& text)
148 {
149 ✗ result_t res = gate_text_format_text(&this->impl, text.c_impl());
150 ✗ GATEXX_CHECK_ERROR(res);
151 ✗ }
152 ✗ void TextFormat::addInt(gate_int64_t num)
153 {
154 ✗ result_t res = gate_text_format_int(&this->impl, num);
155 ✗ GATEXX_CHECK_ERROR(res);
156 ✗ }
157 ✗ void TextFormat::addReal(gate_real64_t num)
158 {
159 ✗ result_t res = gate_text_format_real(&this->impl, num);
160 ✗ GATEXX_CHECK_ERROR(res);
161 ✗ }
162
163 ✗ String TextFormat::toString()
164 {
165 ✗ gate_string_t tmp = GATE_STRING_INIT_EMPTY;
166 ✗ result_t res = gate_text_format_print(&this->impl, &tmp);
167 ✗ GATEXX_CHECK_ERROR(res);
168 ✗ return String::createFrom(tmp);
169 }
170 ✗ String TextFormat::toString() const
171 {
172 ✗ gate_string_t tmp = GATE_STRING_INIT_EMPTY;
173 ✗ result_t res = gate_text_format_extract(&this->impl, &tmp);
174 ✗ GATEXX_CHECK_ERROR(res);
175 ✗ return String::createFrom(tmp);
176 }
177
178 ✗ TextFormat::operator String()
179 {
180 ✗ return this->toString();
181 }
182 ✗ TextFormat::operator String() const
183 {
184 ✗ return this->toString();
185 }
186
187
188 ✗ TextFormat& TextFormat::operator%(String const& text)
189 {
190 ✗ this->addText(text);
191 ✗ return *this;
192 }
193 ✗ TextFormat& TextFormat::operator%(int8_t const& num)
194 {
195 ✗ this->addInt(static_cast<int64_t>(num));
196 ✗ return *this;
197 }
198 ✗ TextFormat& TextFormat::operator%(int16_t const& num)
199 {
200 ✗ this->addInt(static_cast<int64_t>(num));
201 ✗ return *this;
202 }
203 ✗ TextFormat& TextFormat::operator%(int32_t const& num)
204 {
205 ✗ this->addInt(static_cast<int64_t>(num));
206 ✗ return *this;
207 }
208 ✗ TextFormat& TextFormat::operator%(int64_t const& num)
209 {
210 ✗ this->addInt(static_cast<int64_t>(num));
211 ✗ return *this;
212 }
213 ✗ TextFormat& TextFormat::operator%(uint8_t const& num)
214 {
215 ✗ this->addInt(static_cast<int64_t>(num));
216 ✗ return *this;
217 }
218 ✗ TextFormat& TextFormat::operator%(uint16_t const& num)
219 {
220 ✗ this->addInt(static_cast<int64_t>(num));
221 ✗ return *this;
222 }
223 ✗ TextFormat& TextFormat::operator%(uint32_t const& num)
224 {
225 ✗ this->addInt(static_cast<int64_t>(num));
226 ✗ return *this;
227 }
228 ✗ TextFormat& TextFormat::operator%(uint64_t const& num)
229 {
230 ✗ this->addInt(static_cast<int64_t>(num));
231 ✗ return *this;
232 }
233 ✗ TextFormat& TextFormat::operator%(real32_t const& real)
234 {
235 ✗ this->addReal(static_cast<real64_t>(real));
236 ✗ return *this;
237 }
238 ✗ TextFormat& TextFormat::operator%(real64_t const& real)
239 {
240 ✗ this->addReal(static_cast<real64_t>(real));
241 ✗ return *this;
242 }
243
244 ✗ gate_text_formater_t* TextFormat::c_impl()
245 {
246 ✗ return &this->impl;
247 }
248 ✗ gate_text_formater_t const* TextFormat::c_impl() const
249 {
250 ✗ return &this->impl;
251 }
252
253
254 } // end of namespace enc
255 } // end of namespace gate
256