aboutsummaryrefslogtreecommitdiffstats
path: root/storage/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-03-07 11:35:34 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-03-07 11:35:34 +0000
commitc84242e30dd34656fe79e5a6c539d3e5fcc3fd38 (patch)
tree523300a008f6a280571aca2935e2a682e76d6737 /storage/src
parenta4cd8a591a4050b7bb5907919b597f3ea999d883 (diff)
Reduce visibility of document::Document
Diffstat (limited to 'storage/src')
-rw-r--r--storage/src/tests/storageserver/documentapiconvertertest.cpp1
-rw-r--r--storage/src/vespa/storage/persistence/CMakeLists.txt1
-rw-r--r--storage/src/vespa/storage/persistence/asynchandler.h5
-rw-r--r--storage/src/vespa/storage/persistence/merge_bucket_info_syncer.h2
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.cpp15
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.h23
-rw-r--r--storage/src/vespa/storage/persistence/persistenceutil.cpp1
-rw-r--r--storage/src/vespa/storage/persistence/persistenceutil.h7
-rw-r--r--storage/src/vespa/storage/persistence/processallhandler.cpp1
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.cpp1
-rw-r--r--storage/src/vespa/storage/persistence/types.cpp10
-rw-r--r--storage/src/vespa/storage/persistence/types.h7
-rw-r--r--storage/src/vespa/storage/storageserver/documentapiconverter.cpp1
-rw-r--r--storage/src/vespa/storage/visiting/recoveryvisitor.cpp2
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>