From c84242e30dd34656fe79e5a6c539d3e5fcc3fd38 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 7 Mar 2022 11:35:34 +0000 Subject: Reduce visibility of document::Document --- .../storageserver/documentapiconvertertest.cpp | 1 + .../src/vespa/storage/persistence/CMakeLists.txt | 1 - .../src/vespa/storage/persistence/asynchandler.h | 5 +++-- .../storage/persistence/merge_bucket_info_syncer.h | 2 ++ .../src/vespa/storage/persistence/mergehandler.cpp | 15 +++++++------- .../src/vespa/storage/persistence/mergehandler.h | 23 +++++++++++----------- .../vespa/storage/persistence/persistenceutil.cpp | 1 + .../vespa/storage/persistence/persistenceutil.h | 7 ++++--- .../storage/persistence/processallhandler.cpp | 1 + .../storage/persistence/provider_error_wrapper.cpp | 1 - storage/src/vespa/storage/persistence/types.cpp | 10 ---------- storage/src/vespa/storage/persistence/types.h | 7 ------- .../storage/storageserver/documentapiconverter.cpp | 1 + .../src/vespa/storage/visiting/recoveryvisitor.cpp | 2 +- 14 files changed, 33 insertions(+), 44 deletions(-) delete mode 100644 storage/src/vespa/storage/persistence/types.cpp (limited to 'storage') diff --git a/storage/src/tests/storageserver/documentapiconvertertest.cpp b/storage/src/tests/storageserver/documentapiconvertertest.cpp index 4b3cd3dfe17..c375443b265 100644 --- a/storage/src/tests/storageserver/documentapiconvertertest.cpp +++ b/storage/src/tests/storageserver/documentapiconvertertest.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/storage/src/vespa/storage/persistence/CMakeLists.txt b/storage/src/vespa/storage/persistence/CMakeLists.txt index c737d2bed28..7715517a791 100644 --- a/storage/src/vespa/storage/persistence/CMakeLists.txt +++ b/storage/src/vespa/storage/persistence/CMakeLists.txt @@ -18,6 +18,5 @@ vespa_add_library(storage_spersistence OBJECT splitbitdetector.cpp splitjoinhandler.cpp testandsethelper.cpp - types.cpp DEPENDS ) diff --git a/storage/src/vespa/storage/persistence/asynchandler.h b/storage/src/vespa/storage/persistence/asynchandler.h index 71c54e99f75..d50ebf36c81 100644 --- a/storage/src/vespa/storage/persistence/asynchandler.h +++ b/storage/src/vespa/storage/persistence/asynchandler.h @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "types.h" #include "messages.h" #include #include @@ -16,12 +15,14 @@ namespace spi { } class PersistenceUtil; class BucketOwnershipNotifier; +class MessageTracker; /** * Handle async operations that uses a sequenced executor. * It is stateless and thread safe. */ -class AsyncHandler : public Types { +class AsyncHandler { + using MessageTrackerUP = std::unique_ptr; public: AsyncHandler(const PersistenceUtil&, spi::PersistenceProvider&, BucketOwnershipNotifier &, vespalib::ISequencedTaskExecutor & executor, const document::BucketIdFactory & bucketIdFactory); diff --git a/storage/src/vespa/storage/persistence/merge_bucket_info_syncer.h b/storage/src/vespa/storage/persistence/merge_bucket_info_syncer.h index b3386c591e6..cd7e9690316 100644 --- a/storage/src/vespa/storage/persistence/merge_bucket_info_syncer.h +++ b/storage/src/vespa/storage/persistence/merge_bucket_info_syncer.h @@ -2,6 +2,8 @@ #pragma once +#include + namespace storage::spi { class Bucket; } namespace storage { diff --git a/storage/src/vespa/storage/persistence/mergehandler.cpp b/storage/src/vespa/storage/persistence/mergehandler.cpp index 8287fe27509..73361c7e8d6 100644 --- a/storage/src/vespa/storage/persistence/mergehandler.cpp +++ b/storage/src/vespa/storage/persistence/mergehandler.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -239,7 +240,7 @@ MergeHandler::buildBucketInfoList( for (const auto& entry : entries) { api::GetBucketDiffCommand::Entry diff; - diff._gid = GlobalId(); + diff._gid = document::GlobalId(); // We do not know doc sizes at this point, so just set to 0 diff._headerSize = 0; diff._bodySize = 0; @@ -449,7 +450,7 @@ MergeHandler::fetchLocalData( api::ApplyBucketDiffCommand::Entry& e(*iter); if (!docEntry.isRemove()) { - const Document* doc = docEntry.getDocument(); + const document::Document* doc = docEntry.getDocument(); assert(doc != nullptr); assertContainedInBucket(doc->getId(), bucket, idFactory); e._docName = doc->getId().toString(); @@ -459,7 +460,7 @@ MergeHandler::fetchLocalData( memcpy(&e._headerBlob[0], stream.peek(), stream.size()); e._bodyBlob.clear(); } else { - const DocumentId* docId = docEntry.getDocumentId(); + const document::DocumentId* docId = docEntry.getDocumentId(); assert(docId != nullptr); assertContainedInBucket(*docId, bucket, idFactory); if (e._entry._flags & DELETED) { @@ -495,7 +496,7 @@ MergeHandler::deserializeDiffDocument( const api::ApplyBucketDiffCommand::Entry& e, const document::DocumentTypeRepo& repo) const { - auto doc = std::make_unique(); + auto doc = std::make_unique(); vespalib::nbostream hbuf(&e._headerBlob[0], e._headerBlob.size()); if (e._bodyBlob.size() > 0) { // TODO Remove this branch and add warning on error. @@ -519,8 +520,8 @@ MergeHandler::applyDiffEntry(std::shared_ptr async_results spi::Timestamp timestamp(e._entry._timestamp); if (!(e._entry._flags & (DELETED | DELETED_IN_PLACE))) { // Regular put entry - Document::SP doc(deserializeDiffDocument(e, repo)); - DocumentId docId = doc->getId(); + std::shared_ptr doc(deserializeDiffDocument(e, repo)); + document::DocumentId docId = doc->getId(); auto complete = std::make_unique(std::move(async_results), std::move(docId), std::move(throttle_token), "put", _clock, _env._metrics.merge_handler_metrics.put_latency); @@ -557,7 +558,7 @@ MergeHandler::applyDiffLocally( async_results->mark_stale_bucket_info(); DocEntryList entries; - populateMetaData(bucket, MAX_TIMESTAMP, entries, context); + populateMetaData(bucket, Timestamp::max(), entries, context); const document::DocumentTypeRepo & repo = _env.getDocumentTypeRepo(); diff --git a/storage/src/vespa/storage/persistence/mergehandler.h b/storage/src/vespa/storage/persistence/mergehandler.h index 1ed2fa878bc..3f631acbef5 100644 --- a/storage/src/vespa/storage/persistence/mergehandler.h +++ b/storage/src/vespa/storage/persistence/mergehandler.h @@ -13,19 +13,17 @@ */ #pragma once -#include "types.h" #include "merge_bucket_info_syncer.h" #include #include #include #include #include +#include #include -namespace vespalib { -class ISequencedTaskExecutor; -} - +namespace vespalib { class ISequencedTaskExecutor; } +namespace document { class Document; } namespace storage { namespace spi { @@ -36,10 +34,12 @@ namespace spi { class PersistenceUtil; class ApplyBucketDiffState; class MergeStatus; +class MessageTracker; -class MergeHandler : public Types, - public MergeBucketInfoSyncer { - +class MergeHandler : public MergeBucketInfoSyncer { +private: + using MessageTrackerUP = std::unique_ptr; + using Timestamp = framework::MicroSecTime; public: enum StateFlag { IN_USE = 0x01, @@ -92,7 +92,7 @@ public: private: using DocEntryList = std::vector>; const framework::Clock &_clock; - const ClusterContext &_cluster_context; + const ClusterContext &_cluster_context; PersistenceUtil &_env; spi::PersistenceProvider &_spi; std::unique_ptr _monitored_ref_count; @@ -129,9 +129,8 @@ private: DocEntryList & entries, spi::Context& context) const; - Document::UP deserializeDiffDocument( - const api::ApplyBucketDiffCommand::Entry& e, - const document::DocumentTypeRepo& repo) const; + std::unique_ptr + deserializeDiffDocument(const api::ApplyBucketDiffCommand::Entry& e, const document::DocumentTypeRepo& repo) const; }; } // storage diff --git a/storage/src/vespa/storage/persistence/persistenceutil.cpp b/storage/src/vespa/storage/persistence/persistenceutil.cpp index 2781cc61b83..77e8532f0d2 100644 --- a/storage/src/vespa/storage/persistence/persistenceutil.cpp +++ b/storage/src/vespa/storage/persistence/persistenceutil.cpp @@ -3,6 +3,7 @@ #include "persistenceutil.h" #include #include +#include #include #include diff --git a/storage/src/vespa/storage/persistence/persistenceutil.h b/storage/src/vespa/storage/persistence/persistenceutil.h index 4130a276239..c3fcb68ddc8 100644 --- a/storage/src/vespa/storage/persistence/persistenceutil.h +++ b/storage/src/vespa/storage/persistence/persistenceutil.h @@ -1,10 +1,10 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "types.h" #include #include #include +#include #include #include #include @@ -15,6 +15,7 @@ namespace storage::api { class StorageMessage; class StorageReply; + class BucketInfo; } namespace storage::spi { @@ -25,7 +26,7 @@ namespace storage { class PersistenceUtil; -class MessageTracker : protected Types { +class MessageTracker { public: using UP = std::unique_ptr; @@ -48,7 +49,7 @@ public: } /** Utility function to be able to write a bit less in client. */ - void fail(uint32_t result, const String& message = "") { + void fail(uint32_t result, const vespalib::string & message = "") { fail(api::ReturnCode((api::ReturnCode::Result)result, message)); } /** Set the request to fail with the given failure. */ diff --git a/storage/src/vespa/storage/persistence/processallhandler.cpp b/storage/src/vespa/storage/persistence/processallhandler.cpp index 6d6723a0185..c22b08c5ca5 100644 --- a/storage/src/vespa/storage/persistence/processallhandler.cpp +++ b/storage/src/vespa/storage/persistence/processallhandler.cpp @@ -4,6 +4,7 @@ #include "bucketprocessor.h" #include "persistenceutil.h" #include +#include #include #include #include diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp index b7344098698..6d15cc06cdf 100644 --- a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp +++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "provider_error_wrapper.h" -#include "persistenceutil.h" #include #include diff --git a/storage/src/vespa/storage/persistence/types.cpp b/storage/src/vespa/storage/persistence/types.cpp deleted file mode 100644 index 3bf116bb2ee..00000000000 --- a/storage/src/vespa/storage/persistence/types.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include "types.h" - -namespace storage { - -const framework::MicroSecTime Types::MAX_TIMESTAMP(framework::MicroSecTime::max()); -const framework::MicroSecTime Types::UNSET_TIMESTAMP(0); - -} // storage diff --git a/storage/src/vespa/storage/persistence/types.h b/storage/src/vespa/storage/persistence/types.h index 8dff11468a0..da004f85075 100644 --- a/storage/src/vespa/storage/persistence/types.h +++ b/storage/src/vespa/storage/persistence/types.h @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include @@ -17,18 +16,12 @@ class MessageTracker; struct Types { typedef document::BucketId BucketId; - typedef document::Document Document; typedef document::DocumentId DocumentId; typedef document::GlobalId GlobalId; typedef framework::MicroSecTime Timestamp; - typedef Timestamp RevertToken; typedef vespalib::string String; typedef api::BucketInfo BucketInfo; using MessageTrackerUP = std::unique_ptr; - - static const framework::MicroSecTime MAX_TIMESTAMP; - static const framework::MicroSecTime UNSET_TIMESTAMP; - protected: ~Types() {} // Noone should refer to objects as Types objects }; diff --git a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp index d95349fc88b..c465f974a9b 100644 --- a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp +++ b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include diff --git a/storage/src/vespa/storage/visiting/recoveryvisitor.cpp b/storage/src/vespa/storage/visiting/recoveryvisitor.cpp index 1c3c97d7dcb..9d1b2c83266 100644 --- a/storage/src/vespa/storage/visiting/recoveryvisitor.cpp +++ b/storage/src/vespa/storage/visiting/recoveryvisitor.cpp @@ -1,10 +1,10 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - #include "recoveryvisitor.h" #include #include #include +#include #include #include -- cgit v1.2.3