diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-03-07 11:35:34 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-03-07 11:35:34 +0000 |
commit | c84242e30dd34656fe79e5a6c539d3e5fcc3fd38 (patch) | |
tree | 523300a008f6a280571aca2935e2a682e76d6737 /storage/src | |
parent | a4cd8a591a4050b7bb5907919b597f3ea999d883 (diff) |
Reduce visibility of document::Document
Diffstat (limited to 'storage/src')
14 files changed, 33 insertions, 44 deletions
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 <vespa/document/select/parser.h> #include <vespa/document/test/make_document_bucket.h> #include <vespa/document/update/documentupdate.h> +#include <vespa/document/fieldvalue/document.h> #include <vespa/documentapi/documentapi.h> #include <vespa/messagebus/emptyreply.h> #include <vespa/messagebus/error.h> 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 <vespa/storageapi/message/persistence.h> #include <vespa/storageapi/message/removelocation.h> @@ -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<MessageTracker>; 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 <memory> + 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 <vespa/persistence/spi/docentry.h> #include <vespa/vdslib/distribution/distribution.h> #include <vespa/document/fieldset/fieldsets.h> +#include <vespa/document/fieldvalue/document.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/vespalib/util/exceptions.h> #include <vespa/vespalib/util/isequencedtaskexecutor.h> @@ -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<Document>(); + auto doc = std::make_unique<document::Document>(); 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<ApplyBucketDiffState> 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<document::Document> doc(deserializeDiffDocument(e, repo)); + document::DocumentId docId = doc->getId(); auto complete = std::make_unique<ApplyBucketDiffEntryComplete>(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 <vespa/persistence/spi/bucket.h> #include <vespa/storageapi/message/bucket.h> #include <vespa/storage/common/cluster_context.h> #include <vespa/storage/common/messagesender.h> #include <vespa/vespalib/util/monitored_refcount.h> +#include <vespa/storageframework/generic/clock/time.h> #include <atomic> -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<MessageTracker>; + using Timestamp = framework::MicroSecTime; public: enum StateFlag { IN_USE = 0x01, @@ -92,7 +92,7 @@ public: private: using DocEntryList = std::vector<std::unique_ptr<spi::DocEntry>>; const framework::Clock &_clock; - const ClusterContext &_cluster_context; + const ClusterContext &_cluster_context; PersistenceUtil &_env; spi::PersistenceProvider &_spi; std::unique_ptr<vespalib::MonitoredRefCount> _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<document::Document> + 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 <vespa/persistence/spi/persistenceprovider.h> #include <vespa/storageapi/messageapi/bucketinforeply.h> +#include <vespa/document/base/documentid.h> #include <vespa/vespalib/util/exceptions.h> #include <vespa/log/bufferedlogger.h> 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 <vespa/storage/common/servicelayercomponent.h> #include <vespa/storage/persistence/filestorage/filestorhandler.h> #include <vespa/storage/persistence/filestorage/filestormetrics.h> +#include <vespa/storage/bucketdb/storbucketdb.h> #include <vespa/storageframework/generic/clock/timer.h> #include <vespa/storageapi/messageapi/returncode.h> #include <vespa/persistence/spi/result.h> @@ -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<MessageTracker>; @@ -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 <vespa/document/fieldset/fieldsets.h> +#include <vespa/document/fieldvalue/document.h> #include <vespa/persistence/spi/persistenceprovider.h> #include <vespa/persistence/spi/docentry.h> #include <vespa/vespalib/util/stringfmt.h> 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 <vespa/persistence/spi/docentry.h> #include <vespa/vespalib/util/idestructorcallback.h> 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 <iosfwd> #include <vespa/document/bucket/bucketid.h> #include <vespa/document/base/documentid.h> -#include <vespa/document/fieldvalue/document.h> #include <vespa/storage/bucketdb/storbucketdb.h> #include <vespa/storageapi/buckets/bucketinfo.h> #include <vespa/storageapi/defs.h> @@ -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<MessageTracker>; - - 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 <vespa/document/bucket/bucketidfactory.h> #include <vespa/document/update/documentupdate.h> #include <vespa/documentapi/documentapi.h> +#include <vespa/document/fieldvalue/document.h> #include <vespa/storage/common/bucket_resolver.h> #include <vespa/storageapi/message/datagram.h> #include <vespa/storageapi/message/documentsummary.h> 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 <vespa/persistence/spi/docentry.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/documentapi/messagebus/messages/visitor.h> +#include <vespa/document/fieldvalue/document.h> #include <vespa/vespalib/text/stringtokenizer.h> #include <vespa/vespalib/stllike/hash_map.hpp> |