Rudiments
stringbufferinlines.h
1 // Copyright (c) 1999-2018 David Muse
2 // See the COPYING file for more information
3 
4 #include <rudiments/charstring.h>
5 
6 inline
8 }
9 
10 inline
11 stringbuffer::stringbuffer(size_t initialsize) : bytebuffer(initialsize) {
12 }
13 
14 inline
15 stringbuffer::stringbuffer(char *initialcontents, size_t initialsize) :
16  bytebuffer((unsigned char *)initialcontents,initialsize) {
17 }
18 
19 inline
21 }
22 
23 inline
25  if (this!=&s) {
27  }
28  return *this;
29 }
30 
31 inline
33 }
34 
35 inline
36 void stringbuffer::setPosition(size_t pos) {
38 }
39 
40 inline
41 const char *stringbuffer::getString() {
42  bytebuffer::append('\0');
43  const char *retval=(const char *)getBuffer();
44  _position(_position()-1);
45  _size(_size()-1);
46  return retval;
47 }
48 
49 inline
51  return charstring::length(getString());
52 }
53 
54 inline
56  bytebuffer::append('\0');
57  return (char *)detachBuffer();
58 }
59 
60 inline
62  return bytebuffer::getPosition();
63 }
64 
65 inline
68 }
69 
70 inline
71 void stringbuffer::clear(size_t initialsize) {
72  bytebuffer::clear(initialsize);
73 }
74 
75 inline
76 void stringbuffer::clear(char *initialcontents, size_t initialsize) {
77  bytebuffer::clear((unsigned char *)initialcontents,initialsize);
78 }
79 
80 inline
81 stringbuffer *stringbuffer::append(const unsigned char *string) {
82  return (stringbuffer *)bytebuffer::
83  append(string,charstring::length(string));
84 }
85 
86 inline
87 stringbuffer *stringbuffer::append(const unsigned char *string, size_t size) {
88  return (stringbuffer *)bytebuffer::append(string,size);
89 }
90 
91 inline
92 stringbuffer *stringbuffer::append(const char *string) {
93  return (stringbuffer *)bytebuffer::
94  append(string,charstring::length(string));
95 }
96 
97 inline
98 stringbuffer *stringbuffer::append(const char *string, size_t size) {
99  return (stringbuffer *)bytebuffer::append(string,size);
100 }
101 
102 inline
105 }
106 
107 inline
109  return append(number,1);
110 }
111 
112 inline
114  return append(number,1);
115 }
116 
117 inline
119  return append(number,1);
120 }
121 
122 inline
123 stringbuffer *stringbuffer::append(int16_t number, uint16_t zeropadding) {
124  return append((int64_t)number,zeropadding);
125 }
126 
127 inline
128 stringbuffer *stringbuffer::append(int32_t number, uint16_t zeropadding) {
129  return append((int64_t)number,zeropadding);
130 }
131 
132 inline
133 stringbuffer *stringbuffer::append(int64_t number, uint16_t zeropadding) {
134  char *num=charstring::parseNumber(number,zeropadding);
135  append(num);
136  delete[] num;
137  return this;
138 }
139 
140 inline
143 }
144 
145 inline
147  return append(number,1);
148 }
149 
150 inline
152  return append(number,1);
153 }
154 
155 inline
157  return append(number,1);
158 }
159 
160 inline
161 stringbuffer *stringbuffer::append(uint16_t number, uint16_t zeropadding) {
162  return append((uint64_t)number,zeropadding);
163 }
164 
165 inline
166 stringbuffer *stringbuffer::append(uint32_t number, uint16_t zeropadding) {
167  return append((uint64_t)number,zeropadding);
168 }
169 
170 inline
171 stringbuffer *stringbuffer::append(uint64_t number, uint16_t zeropadding) {
172  char *num=charstring::parseNumber(number,zeropadding);
173  append(num);
174  delete[] num;
175  return this;
176 }
177 
178 inline
180  return append(number,4);
181 }
182 
183 inline
184 stringbuffer *stringbuffer::append(float number, uint16_t scale) {
185  return (stringbuffer *)appendFormatted("%.*f",scale,number);
186 }
187 
188 inline
189 stringbuffer *stringbuffer::append(float number, uint16_t precision,
190  uint16_t scale) {
191  return (stringbuffer *)appendFormatted("%*.*f",precision,scale,number);
192 }
193 
194 inline
196  return append(number,4);
197 }
198 
199 inline
200 stringbuffer *stringbuffer::append(double number, uint16_t scale) {
201  return (stringbuffer *)appendFormatted("%.*f",scale,number);
202 }
203 
204 inline
205 stringbuffer *stringbuffer::append(double number, uint16_t precision,
206  uint16_t scale) {
207  return (stringbuffer *)appendFormatted("%*.*f",precision,scale,number);
208 }
209 
210 inline
211 ssize_t stringbuffer::write(const unsigned char *string) {
212  return bytebuffer::write(string,charstring::length(string));
213 }
214 
215 inline
216 ssize_t stringbuffer::write(const unsigned char *string, size_t size) {
217  return bytebuffer::write(string,size);
218 }
219 
220 inline
221 ssize_t stringbuffer::write(const char *string) {
222  return bytebuffer::write(string,charstring::length(string));
223 }
224 
225 inline
226 ssize_t stringbuffer::write(const char *string, size_t size) {
227  return bytebuffer::write(string,size);
228 }
229 
230 inline
233 }
234 
235 inline
236 ssize_t stringbuffer::write(int16_t number) {
237  return writeFormatted("%hd",number);
238 }
239 
240 inline
241 ssize_t stringbuffer::write(int32_t number) {
242  return writeFormatted("%d",number);
243 }
244 
245 inline
246 ssize_t stringbuffer::write(int64_t number) {
247  return writeFormatted("%lld",number);
248 }
249 
250 inline
251 ssize_t stringbuffer::write(unsigned char character) {
253 }
254 
255 inline
256 ssize_t stringbuffer::write(uint16_t number) {
257  return writeFormatted("%hd",number);
258 }
259 
260 inline
261 ssize_t stringbuffer::write(uint32_t number) {
262  return writeFormatted("%d",number);
263 }
264 
265 inline
266 ssize_t stringbuffer::write(uint64_t number) {
267  return bytebuffer::writeFormatted("%lld",number);
268 }
269 
270 inline
271 ssize_t stringbuffer::write(float number) {
272  return write(number,4);
273 }
274 
275 inline
276 ssize_t stringbuffer::write(float number, uint16_t scale) {
277  return writeFormatted("%.*f",scale,number);
278 }
279 
280 inline
281 ssize_t stringbuffer::write(float number, uint16_t precision, uint16_t scale) {
282  return writeFormatted("%*.*f",precision,scale,number);
283 }
284 
285 inline
286 ssize_t stringbuffer::write(double number) {
287  return write(number,4);
288 }
289 
290 inline
291 ssize_t stringbuffer::write(double number, uint16_t scale) {
292  return writeFormatted("%.*f",scale,number);
293 }
294 
295 inline
296 ssize_t stringbuffer::write(double number, uint16_t precision, uint16_t scale) {
297  return writeFormatted("%*.*f",precision,scale,number);
298 }
299 
300 inline
301 void stringbuffer::truncate(size_t pos) {
303 }
304 
305 inline
308 }
unsigned char * detachBuffer()
bytebuffer * appendFormatted(const char *format,...)
ssize_t write(const unsigned char *string)
Definition: stringbufferinlines.h:211
void setPosition(size_t pos)
static size_t length(const char *string)
ssize_t writeFormatted(const char *format,...)
virtual void truncate()
bytebuffer * append(const unsigned char *data, size_t size)
Definition: character.h:11
size_t getStringLength()
Definition: stringbufferinlines.h:50
Definition: stringbuffer.h:13
const unsigned char * getBuffer()
char * detachString()
Definition: stringbufferinlines.h:55
Definition: bytebuffer.h:13
void truncate()
Definition: stringbufferinlines.h:306
~stringbuffer()
Definition: stringbufferinlines.h:32
stringbuffer * append(const unsigned char *string)
Definition: stringbufferinlines.h:81
stringbuffer & operator=(const stringbuffer &s)
Definition: stringbufferinlines.h:24
void setPosition(size_t pos)
Definition: stringbufferinlines.h:36
static char * parseNumber(int16_t number)
ssize_t write(const unsigned char *data, size_t size)
size_t getPosition()
const char * getString()
Definition: stringbufferinlines.h:41
void clear()
Definition: stringbufferinlines.h:66
void clear()
size_t getPosition()
Definition: stringbufferinlines.h:61
stringbuffer()
Definition: stringbufferinlines.h:7
bytebuffer & operator=(const bytebuffer &v)