diff options
author | Henning Baldersheim <balder@oath.com> | 2018-07-19 14:00:27 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-07-19 14:00:27 +0200 |
commit | 81914f5a56ceb33001179c172f22278398c86a51 (patch) | |
tree | 1d8e7a1e137eee94e8275e72085ead1a144cd644 /vespalib | |
parent | 9df684ab0857b573443c00ac7cf1007822d17dfc (diff) |
Add control of cache update policy when an item changes value.
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/vespa/vespalib/data/databuffer.cpp | 16 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/data/databuffer.h | 14 |
2 files changed, 16 insertions, 14 deletions
diff --git a/vespalib/src/vespa/vespalib/data/databuffer.cpp b/vespalib/src/vespa/vespalib/data/databuffer.cpp index 5558a371836..9b04724b601 100644 --- a/vespalib/src/vespa/vespalib/data/databuffer.cpp +++ b/vespalib/src/vespa/vespalib/data/databuffer.cpp @@ -11,11 +11,11 @@ size_t padbefore(size_t alignment, const char *buf) { DataBuffer::DataBuffer(size_t len, size_t alignment, const Alloc & initial) : _alignment(alignment), - _externalBuf(NULL), - _bufstart(NULL), - _bufend(NULL), - _datapt(NULL), - _freept(NULL), + _externalBuf(nullptr), + _bufstart(nullptr), + _bufend(nullptr), + _datapt(nullptr), + _freept(nullptr), _buffer(initial.create(0)) { assert(_alignment > 0); @@ -29,7 +29,7 @@ DataBuffer::DataBuffer(size_t len, size_t alignment, const Alloc & initial) _datapt = _bufstart + padbefore(alignment, _bufstart); _freept = _datapt; _bufend = _bufstart + bufsize; - assert(_bufstart != NULL); + assert(_bufstart != nullptr); } } @@ -68,8 +68,8 @@ DataBuffer::shrink(size_t newsize) if (getBufSize() <= newsize || getDataLen() > newsize) { return false; } - char *newbuf = NULL; - char *newdata = NULL; + char *newbuf = nullptr; + char *newdata = nullptr; newsize += (_alignment - 1); Alloc newBuf(_buffer.create(newsize)); if (newsize != 0) { diff --git a/vespalib/src/vespa/vespalib/data/databuffer.h b/vespalib/src/vespa/vespalib/data/databuffer.h index 28524f373b2..a520ecd58bd 100644 --- a/vespalib/src/vespa/vespalib/data/databuffer.h +++ b/vespalib/src/vespa/vespalib/data/databuffer.h @@ -44,6 +44,8 @@ public: typedef std::unique_ptr<DataBuffer> UP; DataBuffer(const DataBuffer &) = delete; DataBuffer &operator=(const DataBuffer &) = delete; + DataBuffer(DataBuffer &&) = default; + DataBuffer &operator=(DataBuffer &&) = default; /** * Construct a databuffer. @@ -61,19 +63,19 @@ public: * @param buf pointer to preallocated memory * @param len length of preallocated memory **/ - DataBuffer(char *buf, size_t len) : + DataBuffer(void *buf, size_t len) : _alignment(1), - _externalBuf(buf), - _bufstart(buf), - _bufend(buf + len), + _externalBuf(static_cast<char *>(buf)), + _bufstart(_externalBuf), + _bufend(_externalBuf + len), _datapt(_bufstart), _freept(_bufstart), _buffer(Alloc::alloc(0)) { } - DataBuffer(const char *buf, size_t len) : + DataBuffer(const void *buf, size_t len) : _alignment(1), - _externalBuf(const_cast<char *>(buf)), + _externalBuf(static_cast<char *>(const_cast<void *>(buf))), _bufstart(_externalBuf), _bufend(_bufstart + len), _datapt(_bufstart), |