summaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/vespa/vsm/common/charbuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'streamingvisitors/src/vespa/vsm/common/charbuffer.cpp')
-rw-r--r--streamingvisitors/src/vespa/vsm/common/charbuffer.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/streamingvisitors/src/vespa/vsm/common/charbuffer.cpp b/streamingvisitors/src/vespa/vsm/common/charbuffer.cpp
new file mode 100644
index 00000000000..b8fbb5c8846
--- /dev/null
+++ b/streamingvisitors/src/vespa/vsm/common/charbuffer.cpp
@@ -0,0 +1,32 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include "charbuffer.h"
+#include <cstring>
+
+namespace vsm {
+
+CharBuffer::CharBuffer(size_t len) :
+ _buffer(len),
+ _pos(0)
+{ }
+
+void
+CharBuffer::put(const char * src, size_t n)
+{
+ if (n > getRemaining()) {
+ resize(_pos + (n * 2));
+ }
+ char * dst = &_buffer[_pos];
+ memcpy(dst, src, n);
+ _pos += n;
+}
+
+void
+CharBuffer::resize(size_t len)
+{
+ if (len > getLength()) {
+ _buffer.resize(len);
+ }
+}
+
+}
+