diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-12-29 22:04:19 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-12-29 22:04:19 +0000 |
commit | 89e594cd35cc7c86f0aa7178896727f3982793bf (patch) | |
tree | ee2576a56517747a1bd1e9feacc676c0f24fa5d9 /storage | |
parent | 05dda3b487493495bb99aa149673e6b92d842aa5 (diff) |
- Avoid inefficient generic template.
- Add explicit implementations for the types needed.
Diffstat (limited to 'storage')
4 files changed, 27 insertions, 40 deletions
diff --git a/storage/src/vespa/storage/visiting/countvisitor.cpp b/storage/src/vespa/storage/visiting/countvisitor.cpp index b8b415402d6..fe1569f84da 100644 --- a/storage/src/vespa/storage/visiting/countvisitor.cpp +++ b/storage/src/vespa/storage/visiting/countvisitor.cpp @@ -26,10 +26,9 @@ CountVisitor::handleDocuments(const document::BucketId& /*bucketId*/, DocEntryList& entries, HitCounter& hitCounter) { - for (size_t i = 0; i < entries.size(); ++i) { - const spi::DocEntry& entry(*entries[i]); - if (!entry.isRemove()) { - const document::Document* doc = entry.getDocument(); + for (const auto & entry : entries) { + if (!entry->isRemove()) { + const document::Document* doc = entry->getDocument(); if (doc) { const document::IdString& idString = doc->getId().getScheme(); @@ -57,33 +56,25 @@ CountVisitor::handleDocuments(const document::BucketId& /*bucketId*/, } void CountVisitor::completedVisiting(HitCounter&) { - documentapi::MapVisitorMessage* cmd(new documentapi::MapVisitorMessage()); + auto cmd = std::make_unique<documentapi::MapVisitorMessage>(); - for (std::map<std::string, int>::iterator iter = _schemeCount.begin(); - iter != _schemeCount.end(); - iter++) { - cmd->getData().set(vespalib::make_string("scheme.%s", iter->first.c_str()), iter->second); + for (const auto & count : _schemeCount) { + cmd->getData().set(vespalib::make_string("scheme.%s", count.first.c_str()), count.second); } - for (NamespaceCountMap::const_iterator iter = _namespaceCount.begin(); - iter != _namespaceCount.end(); - iter++) { - cmd->getData().set(vespalib::make_string("namespace.%s", iter->first.c_str()), iter->second); + for (const auto & count : _namespaceCount) { + cmd->getData().set(vespalib::make_string("namespace.%s", count.first.c_str()), count.second); } - for (GroupCountMap::const_iterator iter = _groupCount.begin(); - iter != _groupCount.end(); - iter++) { - cmd->getData().set(vespalib::make_string("group.%s", iter->first.c_str()), iter->second); + for (const auto & count : _groupCount) { + cmd->getData().set(vespalib::make_string("group.%s", count.first.c_str()), count.second); } - for (std::map<uint64_t, int>::iterator iter = _userCount.begin(); - iter != _userCount.end(); - iter++) { - cmd->getData().set(vespalib::make_string("user.%" PRIu64, iter->first), iter->second); + for (const auto & count : _userCount) { + cmd->getData().set(vespalib::make_string("user.%" PRIu64, count.first), count.second); } - sendMessage(documentapi::DocumentMessage::UP(cmd)); + sendMessage(std::move(cmd)); } } diff --git a/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp b/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp index efbe8c9b42d..57047be6037 100644 --- a/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp +++ b/storage/src/vespa/storageapi/mbusprot/protocolserialization7.cpp @@ -56,8 +56,8 @@ void set_bucket_info(protobuf::BucketInfo& dest, const api::BucketInfo& src) { } document::Bucket get_bucket(const protobuf::Bucket& src) { - return document::Bucket(document::BucketSpace(src.space_id()), - document::BucketId(src.raw_bucket_id())); + return {document::BucketSpace(src.space_id()), + document::BucketId(src.raw_bucket_id())}; } api::BucketInfo get_bucket_info(const protobuf::BucketInfo& src) { @@ -953,11 +953,11 @@ void fill_api_apply_diff_vector(std::vector<api::ApplyBucketDiffCommand::Entry>& dest._docName = proto_entry.document_id(); // TODO consider making buffers std::strings instead to avoid explicit zeroing-on-resize overhead dest._headerBlob.resize(proto_entry.header_blob().size()); - if (proto_entry.header_blob().size() > 0) { + if (!proto_entry.header_blob().empty()) { memcpy(dest._headerBlob.data(), proto_entry.header_blob().data(), proto_entry.header_blob().size()); } dest._bodyBlob.resize(proto_entry.body_blob().size()); - if (proto_entry.body_blob().size() > 0) { + if (!proto_entry.body_blob().empty()) { memcpy(dest._bodyBlob.data(), proto_entry.body_blob().data(), proto_entry.body_blob().size()); } } diff --git a/storage/src/vespa/storageapi/message/datagram.cpp b/storage/src/vespa/storageapi/message/datagram.cpp index d2ced1d4b7b..103b7ead08c 100644 --- a/storage/src/vespa/storageapi/message/datagram.cpp +++ b/storage/src/vespa/storageapi/message/datagram.cpp @@ -5,8 +5,7 @@ using document::BucketSpace; -namespace storage { -namespace api { +namespace storage::api { IMPLEMENT_COMMAND(MapVisitorCommand, MapVisitorReply) IMPLEMENT_REPLY(MapVisitorReply) @@ -24,11 +23,9 @@ MapVisitorCommand::print(std::ostream& out, bool verbose, { out << "MapVisitor(" << _statistics.size() << " entries"; if (verbose) { - for (vdslib::Parameters::ParametersMap::const_iterator it - = _statistics.begin(); it != _statistics.end(); ++it) - { - out << ",\n" << indent << " " << it->first << ": " - << vespalib::stringref(it->second.c_str(), it->second.length()); + for (const auto & stat : _statistics) { + out << ",\n" << indent << " " << stat.first << ": " + << vespalib::stringref(stat.second.c_str(), stat.second.length()); } out << ") : "; StorageCommand::print(out, verbose, indent); @@ -66,9 +63,9 @@ EmptyBucketsCommand::print(std::ostream& out, bool verbose, { out << "EmptyBuckets("; if (verbose) { - for (uint32_t i=0; i<_buckets.size(); ++i) { + for (const auto & bucket : _buckets) { out << "\n" << indent << " "; - out << _buckets[i]; + out << bucket; } } else { out << _buckets.size() << " buckets"; @@ -96,5 +93,4 @@ EmptyBucketsReply::print(std::ostream& out, bool verbose, } } -} // api -} // storage +} diff --git a/storage/src/vespa/storageapi/message/visitor.h b/storage/src/vespa/storageapi/message/visitor.h index fddb7604eff..979b8064bd8 100644 --- a/storage/src/vespa/storageapi/message/visitor.h +++ b/storage/src/vespa/storageapi/message/visitor.h @@ -58,7 +58,7 @@ public: /** Create another command with similar visitor settings. */ CreateVisitorCommand(const CreateVisitorCommand& template_); - ~CreateVisitorCommand(); + ~CreateVisitorCommand() override; void setVisitorCmdId(uint32_t id) { _visitorCmdId = id; } void setControlDestination(vespalib::stringref d) { _controlDestination = d; } @@ -211,7 +211,7 @@ public: void setErrorCode(ReturnCode && code) { _error = std::move(code); } void setCompleted() { _completed = true; } void setBucketCompleted(const document::BucketId& id, Timestamp lastVisited) { - _bucketsCompleted.push_back(BucketTimestampPair(id, lastVisited)); + _bucketsCompleted.emplace_back(id, lastVisited); } void setBucketsCompleted(const std::vector<BucketTimestampPair>& bc) { _bucketsCompleted = bc; @@ -234,7 +234,7 @@ class VisitorInfoReply : public StorageReply { bool _completed; public: - VisitorInfoReply(const VisitorInfoCommand& cmd); + explicit VisitorInfoReply(const VisitorInfoCommand& cmd); bool visitorCompleted() const { return _completed; } void print(std::ostream& out, bool verbose, const std::string& indent) const override; |