diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-20 12:52:53 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-20 12:52:53 +0000 |
commit | c12fe9e1f77a2d2d7dfbcd846bda7310c198734f (patch) | |
tree | e2c494a85b0a37d935b97d008abacae41fc92e6e /vespalib | |
parent | cc659eb6a33016e412f89b797ea09b10fa4c5f3a (diff) |
Reserve space for vector.
Varoius code cleanup for c++11.
Diffstat (limited to 'vespalib')
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 +} |