summaryrefslogtreecommitdiff
path: root/libs/util/src/StringBuilder.cc
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-07-22 11:38:43 +0200
committergeronimo <geronimo013@gmx.de>2012-07-22 11:38:43 +0200
commitab7186c6c116629983dc506c4b53794026518455 (patch)
treef5508dd32f35509fb45f7cf046a0a8e0bc1c4605 /libs/util/src/StringBuilder.cc
parent04a867b018a8c6761047ef8878a4434692673084 (diff)
downloadcmp-ab7186c6c116629983dc506c4b53794026518455.tar.gz
cmp-ab7186c6c116629983dc506c4b53794026518455.tar.bz2
worked out new file class
Diffstat (limited to 'libs/util/src/StringBuilder.cc')
-rw-r--r--libs/util/src/StringBuilder.cc31
1 files changed, 29 insertions, 2 deletions
diff --git a/libs/util/src/StringBuilder.cc b/libs/util/src/StringBuilder.cc
index 8e90151..28b048e 100644
--- a/libs/util/src/StringBuilder.cc
+++ b/libs/util/src/StringBuilder.cc
@@ -2,7 +2,7 @@
* ======================== legal notice ======================
*
* File: StringBuilder.cc
- * Created: 6. Juli 2012, 10:54
+ * Created: 6. Juli 2012, 10
* Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a>
* Project: libutil - base classes used by other libraries
*
@@ -37,6 +37,7 @@ cStringBuilder::cStringBuilder(const char *First)
: chunkSize(127)
, readOffset(0)
, writeOffset(0)
+ , firstChunk(NULL)
, pool(freeStringCallback)
{
init();
@@ -47,6 +48,7 @@ cStringBuilder::cStringBuilder(int ChunkSize)
: chunkSize(ChunkSize)
, readOffset(0)
, writeOffset(0)
+ , firstChunk(NULL)
, pool(freeStringCallback)
{
init();
@@ -61,12 +63,13 @@ void cStringBuilder::init(void)
char *first = (char *) malloc(chunkSize);
pool.push_back(first);
+ firstChunk = first;
}
void cStringBuilder::Write(const char *Text)
{
if (!Text) {
- esyslog("ERROR: text to add is a NULL-ponter!");
+ esyslog("ERROR: text to add is a NULL-pointer!");
return;
}
uint chunkFree = chunkSize - writeOffset;
@@ -130,6 +133,18 @@ cStringBuilder &cStringBuilder::Append(const char* Text)
return *this;
}
+cStringBuilder &cStringBuilder::Append(char c)
+{
+ char buf[2];
+
+ *buf = c;
+ buf[1] = 0;
+
+ Write(buf);
+
+ return *this;
+}
+
cStringBuilder &cStringBuilder::Append(bool v, const char *TrueValue, const char *FalseValue)
{
if (v) Write(TrueValue);
@@ -176,3 +191,15 @@ cStringBuilder &cStringBuilder::Append(size_t v)
return *this;
}
+
+char *cStringBuilder::toString(void)
+{
+ char *rv = (char *) malloc(Size() + 1);
+
+ if (rv) {
+ readOffset = 0;
+ Copy(rv, Size() + 1);
+ *(rv + Size()) = 0;
+ }
+ return rv;
+}