summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-20 12:52:53 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-20 12:52:53 +0000
commitc12fe9e1f77a2d2d7dfbcd846bda7310c198734f (patch)
treee2c494a85b0a37d935b97d008abacae41fc92e6e /vespalib
parentcc659eb6a33016e412f89b797ea09b10fa4c5f3a (diff)
Reserve space for vector.
Varoius code cleanup for c++11.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/data/memorydatastore.cpp13
-rw-r--r--vespalib/src/vespa/vespalib/data/memorydatastore.h2
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/binary_format.cpp55
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/symbol_table.cpp10
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/symbol_table.h6
5 files changed, 35 insertions, 51 deletions
diff --git a/vespalib/src/vespa/vespalib/data/memorydatastore.cpp b/vespalib/src/vespa/vespalib/data/memorydatastore.cpp
index 866fb7d4929..df1b68cff12 100644
--- a/vespalib/src/vespa/vespalib/data/memorydatastore.cpp
+++ b/vespalib/src/vespa/vespalib/data/memorydatastore.cpp
@@ -15,9 +15,7 @@ MemoryDataStore::MemoryDataStore(Alloc && initialAlloc, Lock * lock) :
_buffers.emplace_back(std::move(initialAlloc));
}
-MemoryDataStore::~MemoryDataStore()
-{
-}
+MemoryDataStore::~MemoryDataStore() = default;
MemoryDataStore::Reference
MemoryDataStore::push_back(const void * data, const size_t sz)
@@ -40,15 +38,14 @@ MemoryDataStore::push_back(const void * data, const size_t sz)
return ref;
}
-VariableSizeVector::VariableSizeVector(size_t initialSize) :
+VariableSizeVector::VariableSizeVector(size_t initialCount, size_t initialBufferSize) :
_vector(),
- _store(Alloc::alloc(initialSize))
+ _store(Alloc::alloc(initialBufferSize))
{
+ _vector.reserve(initialCount);
}
-VariableSizeVector::~VariableSizeVector()
-{
-}
+VariableSizeVector::~VariableSizeVector() = default;
VariableSizeVector::Reference
VariableSizeVector::push_back(const void * data, const size_t sz)
diff --git a/vespalib/src/vespa/vespalib/data/memorydatastore.h b/vespalib/src/vespa/vespalib/data/memorydatastore.h
index 3ef0e3ee986..2d02bfb107c 100644
--- a/vespalib/src/vespa/vespalib/data/memorydatastore.h
+++ b/vespalib/src/vespa/vespalib/data/memorydatastore.h
@@ -99,7 +99,7 @@ public:
};
VariableSizeVector(const VariableSizeVector &) = delete;
VariableSizeVector & operator = (const VariableSizeVector &) = delete;
- VariableSizeVector(size_t initialSize=256);
+ VariableSizeVector(size_t initialCount, size_t initialBufferSize);
~VariableSizeVector();
iterator begin() { return iterator(_vector, 0); }
iterator end() { return iterator(_vector, size()); }
diff --git a/vespalib/src/vespa/vespalib/data/slime/binary_format.cpp b/vespalib/src/vespa/vespalib/data/slime/binary_format.cpp
index 2febe3f4405..1956dde689c 100644
--- a/vespalib/src/vespa/vespalib/data/slime/binary_format.cpp
+++ b/vespalib/src/vespa/vespalib/data/slime/binary_format.cpp
@@ -7,10 +7,7 @@
#include <vespa/log/log.h>
LOG_SETUP(".vespalib.data.slime.binary_format");
-namespace vespalib {
-namespace slime {
-
-namespace binary_format {
+namespace vespalib::slime::binary_format {
struct BinaryEncoder : public ArrayTraverser,
public ObjectSymbolTraverser
@@ -242,32 +239,6 @@ size_t decode(const Memory &memory, Slime &slime, const Inserter &inserter) {
return input.failed() ? 0 : input.get_offset();
}
-} // namespace vespalib::slime::binary_format
-
-void
-BinaryFormat::encode(const Slime &slime, Output &output)
-{
- size_t chunk_size = 8000;
- OutputWriter out(output, chunk_size);
- binary_format::BinaryEncoder encoder(out);
- encoder.encodeSymbolTable(slime);
- encoder.encodeValue(slime.get());
-}
-
-size_t
-BinaryFormat::decode(const Memory &memory, Slime &slime)
-{
- return binary_format::decode<false>(memory, slime, SlimeInserter(slime));
-}
-
-size_t
-BinaryFormat::decode_into(const Memory &memory, Slime &slime, const Inserter &inserter)
-{
- return binary_format::decode<true>(memory, slime, inserter);
-}
-
-namespace binary_format {
-
void
write_cmpr_ulong(OutputWriter &out, uint64_t value) {
out.commit(encode_cmpr_ulong(out.reserve(10), value));
@@ -288,5 +259,25 @@ write_type_and_size(OutputWriter &out, uint32_t type, uint64_t size) {
}
-} // namespace vespalib::slime
-} // namespace vespalib
+namespace vespalib::slime {
+
+void
+BinaryFormat::encode(const Slime &slime, Output &output) {
+ size_t chunk_size = 8000;
+ OutputWriter out(output, chunk_size);
+ binary_format::BinaryEncoder encoder(out);
+ encoder.encodeSymbolTable(slime);
+ encoder.encodeValue(slime.get());
+}
+
+size_t
+BinaryFormat::decode(const Memory &memory, Slime &slime) {
+ return binary_format::decode<false>(memory, slime, SlimeInserter(slime));
+}
+
+size_t
+BinaryFormat::decode_into(const Memory &memory, Slime &slime, const Inserter &inserter) {
+ return binary_format::decode<true>(memory, slime, inserter);
+}
+
+}
diff --git a/vespalib/src/vespa/vespalib/data/slime/symbol_table.cpp b/vespalib/src/vespa/vespalib/data/slime/symbol_table.cpp
index 643e23b5887..a7de28932f3 100644
--- a/vespalib/src/vespa/vespalib/data/slime/symbol_table.cpp
+++ b/vespalib/src/vespa/vespalib/data/slime/symbol_table.cpp
@@ -3,15 +3,14 @@
#include "symbol_table.h"
#include <vespa/vespalib/stllike/hash_map.hpp>
-namespace vespalib {
-namespace slime {
+namespace vespalib::slime {
SymbolTable::SymbolTable(size_t expectedNumSymbols) :
_symbols(3*expectedNumSymbols),
- _names()
+ _names(expectedNumSymbols, expectedNumSymbols*16)
{ }
-SymbolTable::~SymbolTable() { }
+SymbolTable::~SymbolTable() = default;
void
SymbolTable::clear() {
@@ -39,5 +38,4 @@ SymbolTable::lookup(const Memory &name) const {
return pos->second;
}
-} // namespace vespalib::slime
-} // namespace vespalib
+}
diff --git a/vespalib/src/vespa/vespalib/data/slime/symbol_table.h b/vespalib/src/vespa/vespalib/data/slime/symbol_table.h
index c726da0319b..30599d76597 100644
--- a/vespalib/src/vespa/vespalib/data/slime/symbol_table.h
+++ b/vespalib/src/vespa/vespalib/data/slime/symbol_table.h
@@ -7,8 +7,7 @@
#include <vespa/vespalib/stllike/hash_map.h>
#include <vespa/vespalib/data/memorydatastore.h>
-namespace vespalib {
-namespace slime {
+namespace vespalib::slime {
/**
* Maps between strings and symbols.
@@ -43,6 +42,5 @@ public:
void clear();
};
-} // namespace vespalib::slime
-} // namespace vespalib
+}