summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-01-15 23:30:30 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-01-15 23:30:30 +0000
commitbfa4fbddaa847c3fe593485951a528b60c5f6412 (patch)
tree18a242070466c72f3077e5ae16c3193029e25a32 /searchcore
parentb275087c2a110a1dc9aca0662f7ed01e2e7928ec (diff)
Use forward declarations to reduce amount of included code.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/apps/proton/proton.cpp1
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistenceengineowner.h13
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h3
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/resulthandler.h8
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.h8
6 files changed, 24 insertions, 16 deletions
diff --git a/searchcore/src/apps/proton/proton.cpp b/searchcore/src/apps/proton/proton.cpp
index 171579ad693..f01f3486a79 100644
--- a/searchcore/src/apps/proton/proton.cpp
+++ b/searchcore/src/apps/proton/proton.cpp
@@ -6,6 +6,7 @@
#include <vespa/vespalib/util/signalhandler.h>
#include <vespa/vespalib/util/programoptions.h>
#include <vespa/vespalib/io/fileutil.h>
+#include <vespa/vespalib/util/exceptions.h>
#include <vespa/config/common/exceptions.h>
#include <vespa/fastos/app.h>
#include <iostream>
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistenceengineowner.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistenceengineowner.h
index bf07aaa82d8..8e01e67719a 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistenceengineowner.h
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistenceengineowner.h
@@ -2,19 +2,16 @@
#pragma once
-#include <vespa/persistence/spi/abstractpersistenceprovider.h>
+#include <vespa/document/bucket/bucketspace.h>
-namespace proton
-{
+namespace storage::spi { class ClusterState; }
+
+namespace proton {
class IPersistenceEngineOwner
{
public:
- virtual
- ~IPersistenceEngineOwner()
- {
- }
-
+ virtual ~IPersistenceEngineOwner() = default;
virtual void
setClusterState(document::BucketSpace bucketSpace, const storage::spi::ClusterState &calc) = 0;
};
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h
index 7e3bb903f72..1af6c2e60bc 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/ipersistencehandler.h
@@ -4,13 +4,14 @@
#include "bucket_guard.h"
#include "i_document_retriever.h"
#include "resulthandler.h"
-#include <vespa/persistence/spi/abstractpersistenceprovider.h>
#include <vespa/searchcore/proton/common/feedtoken.h>
namespace document {
class Document;
class DocumentUpdate;
}
+namespace storage::spi { class ClusterState; }
+
namespace proton {
/**
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/resulthandler.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/resulthandler.h
index 6712a35bd65..cb6fb28647e 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/resulthandler.h
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/resulthandler.h
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include <vespa/persistence/spi/abstractpersistenceprovider.h>
+#include <vespa/persistence/spi/result.h>
namespace proton {
@@ -12,9 +12,9 @@ public:
virtual void handle(const ResultType &result) = 0;
};
-typedef IResultHandler<storage::spi::BucketIdListResult> IBucketIdListResultHandler;
-typedef IResultHandler<storage::spi::BucketInfoResult> IBucketInfoResultHandler;
-typedef IResultHandler<storage::spi::Result> IGenericResultHandler;
+using IBucketIdListResultHandler = IResultHandler<storage::spi::BucketIdListResult>;
+using IBucketInfoResultHandler = IResultHandler<storage::spi::BucketInfoResult>;
+using IGenericResultHandler = IResultHandler<storage::spi::Result>;
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
index 3f7cf14afbe..7d97214244d 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
@@ -25,6 +25,7 @@
#include <vespa/searchcore/proton/reference/document_db_reference_registry.h>
#include <vespa/searchcore/proton/summaryengine/docsum_by_slime.h>
#include <vespa/searchcore/proton/summaryengine/summaryengine.h>
+#include <vespa/searchcore/proton/persistenceengine/persistenceengine.h>
#include <vespa/searchlib/common/packets.h>
#include <vespa/searchlib/transactionlog/trans_log_server_explorer.h>
#include <vespa/searchlib/transactionlog/translogserverapp.h>
@@ -929,4 +930,10 @@ Proton::getDocumentDBReferenceRegistry() const
return _documentDBReferenceRegistry;
}
+storage::spi::PersistenceProvider &
+Proton::getPersistence()
+{
+ return *_persistenceEngine;
+}
+
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.h b/searchcore/src/vespa/searchcore/proton/server/proton.h
index 7d877eb110a..0e6d20115a0 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.h
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.h
@@ -16,7 +16,6 @@
#include <vespa/searchcore/proton/metrics/metrics_engine.h>
#include <vespa/searchcore/proton/persistenceengine/i_resource_write_filter.h>
#include <vespa/searchcore/proton/persistenceengine/ipersistenceengineowner.h>
-#include <vespa/searchcore/proton/persistenceengine/persistenceengine.h>
#include <vespa/searchlib/common/fileheadercontext.h>
#include <vespa/searchlib/engine/monitorapi.h>
#include <vespa/vespalib/net/component_config_producer.h>
@@ -32,6 +31,8 @@
namespace vespalib { class StateServer; }
namespace search::transactionlog { class TransLogServerApp; }
namespace metrics { class MetricLockGuard; }
+namespace storage::spi { class PersistenceProvider; }
+
namespace proton {
class DiskMemUsageSampler;
@@ -42,6 +43,7 @@ class SummaryEngine;
class DocsumBySlime;
class FlushEngine;
class MatchEngine;
+class PersistenceEngine;
class Proton : public IProtonConfigurerOwner,
public search::engine::MonitorServer,
@@ -83,7 +85,7 @@ private:
ProtonFileHeaderContext _fileHeaderContext;
std::unique_ptr<TLS> _tls;
std::unique_ptr<DiskMemUsageSampler> _diskMemUsageSampler;
- PersistenceEngine::UP _persistenceEngine;
+ std::unique_ptr<PersistenceEngine> _persistenceEngine;
DocumentDBMap _documentDBMap;
std::unique_ptr<MatchEngine> _matchEngine;
std::unique_ptr<SummaryEngine> _summaryEngine;
@@ -206,7 +208,7 @@ public:
bool isInitializing() const override { return _isInitializing; }
bool hasAbortedInit() const { return _abortInit; }
- storage::spi::PersistenceProvider & getPersistence() { return *_persistenceEngine; }
+ storage::spi::PersistenceProvider & getPersistence();
void get_state(const vespalib::slime::Inserter &inserter, bool full) const override;
std::vector<vespalib::string> get_children_names() const override;