aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/vespa/vsm/common/charbuffer.cpp
blob: 4e07774cba41dd97c1cd4fc73c6a04846d0027c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright Vespa.ai. 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);
    }
}

}