diff options
Diffstat (limited to 'streamingvisitors/src/vespa/vsm/common/charbuffer.cpp')
-rw-r--r-- | streamingvisitors/src/vespa/vsm/common/charbuffer.cpp | 32 |
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); + } +} + +} + |