summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-12-15 10:07:04 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2022-12-15 12:10:58 +0000
commit73e52213eb642957fa7a5ddc53dbebbb121761df (patch)
treee722af1fc498038e604a64b72e94b4dec67c2cd5 /storage
parenta5ccdfb0c8180c0ec98ec258a02615ae58c71641 (diff)
Move MessageGuard out to storage/common sub-library
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/common/CMakeLists.txt1
-rw-r--r--storage/src/vespa/storage/common/message_guard.cpp16
-rw-r--r--storage/src/vespa/storage/common/message_guard.h39
-rw-r--r--storage/src/vespa/storage/distributor/messageguard.h45
-rw-r--r--storage/src/vespa/storage/distributor/stripe_bucket_db_updater.h2
-rw-r--r--storage/src/vespa/storage/distributor/top_level_bucket_db_updater.h2
-rw-r--r--storage/src/vespa/storage/storageserver/mergethrottler.cpp1
-rw-r--r--storage/src/vespa/storage/storageserver/mergethrottler.h2
8 files changed, 60 insertions, 48 deletions
diff --git a/storage/src/vespa/storage/common/CMakeLists.txt b/storage/src/vespa/storage/common/CMakeLists.txt
index 33efbb571fd..4a712719d53 100644
--- a/storage/src/vespa/storage/common/CMakeLists.txt
+++ b/storage/src/vespa/storage/common/CMakeLists.txt
@@ -8,6 +8,7 @@ vespa_add_library(storage_common OBJECT
distributorcomponent.cpp
global_bucket_space_distribution_converter.cpp
messagebucket.cpp
+ message_guard.cpp
messagesender.cpp
node_identity.cpp
reindexing_constants.cpp
diff --git a/storage/src/vespa/storage/common/message_guard.cpp b/storage/src/vespa/storage/common/message_guard.cpp
new file mode 100644
index 00000000000..335b2c3d4d7
--- /dev/null
+++ b/storage/src/vespa/storage/common/message_guard.cpp
@@ -0,0 +1,16 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include "message_guard.h"
+
+namespace storage {
+
+MessageGuard::~MessageGuard() {
+ _lock.unlock();
+ for (uint32_t i = 0; i < messagesUp.size(); i++) {
+ _messageSender.sendUp(messagesUp[i]);
+ }
+ for (uint32_t i = 0; i < messagesDown.size(); i++) {
+ _messageSender.sendDown(messagesDown[i]);
+ }
+}
+
+}
diff --git a/storage/src/vespa/storage/common/message_guard.h b/storage/src/vespa/storage/common/message_guard.h
new file mode 100644
index 00000000000..682d7a3dc99
--- /dev/null
+++ b/storage/src/vespa/storage/common/message_guard.h
@@ -0,0 +1,39 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#pragma once
+
+#include "messagesender.h"
+#include <memory>
+#include <mutex>
+#include <vector>
+
+namespace storage {
+
+class MessageGuard {
+ std::vector<std::shared_ptr<api::StorageMessage>> messagesUp;
+ std::vector<std::shared_ptr<api::StorageMessage>> messagesDown;
+
+ std::unique_lock<std::mutex> _lock;
+ ChainedMessageSender& _messageSender;
+
+public:
+ MessageGuard(std::mutex& lock, ChainedMessageSender& messageSender)
+ : _lock(lock),
+ _messageSender(messageSender)
+ {}
+ ~MessageGuard();
+
+ void send(const std::shared_ptr<api::StorageMessage>& message) {
+ sendUp(message);
+ }
+
+ void sendUp(const std::shared_ptr<api::StorageMessage>& message) {
+ messagesUp.push_back(message);
+ }
+
+ void sendDown(const std::shared_ptr<api::StorageMessage>& message) {
+ messagesDown.push_back(message);
+ }
+};
+
+}
+
diff --git a/storage/src/vespa/storage/distributor/messageguard.h b/storage/src/vespa/storage/distributor/messageguard.h
deleted file mode 100644
index 2ed75d22577..00000000000
--- a/storage/src/vespa/storage/distributor/messageguard.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#pragma once
-
-#include "pendingclusterstate.h"
-#include <vespa/storage/common/messagesender.h>
-
-namespace storage {
-
-class MessageGuard {
- std::vector<std::shared_ptr<api::StorageMessage> > messagesUp;
- std::vector<std::shared_ptr<api::StorageMessage> > messagesDown;
-
- std::unique_lock<std::mutex> _lock;
- ChainedMessageSender& _messageSender;
-
-public:
- MessageGuard(std::mutex & lock, ChainedMessageSender& messageSender)
- : _lock(lock),
- _messageSender(messageSender) {}
-
- void send(const std::shared_ptr<api::StorageMessage>& message) {
- sendUp(message);
- }
-
- void sendUp(const std::shared_ptr<api::StorageMessage>& message) {
- messagesUp.push_back(message);
- }
-
- void sendDown(const std::shared_ptr<api::StorageMessage>& message) {
- messagesDown.push_back(message);
- }
-
- ~MessageGuard() {
- _lock.unlock();
- for (uint32_t i = 0; i < messagesUp.size(); i++) {
- _messageSender.sendUp(messagesUp[i]);
- }
- for (uint32_t i = 0; i < messagesDown.size(); i++) {
- _messageSender.sendDown(messagesDown[i]);
- }
- }
-};
-
-}
-
diff --git a/storage/src/vespa/storage/distributor/stripe_bucket_db_updater.h b/storage/src/vespa/storage/distributor/stripe_bucket_db_updater.h
index 7a34ed03a3c..b31ffe53451 100644
--- a/storage/src/vespa/storage/distributor/stripe_bucket_db_updater.h
+++ b/storage/src/vespa/storage/distributor/stripe_bucket_db_updater.h
@@ -4,12 +4,12 @@
#include "bucketlistmerger.h"
#include "distributor_stripe_component.h"
#include "distributormessagesender.h"
-#include "messageguard.h"
#include "operation_routing_snapshot.h"
#include "outdated_nodes_map.h"
#include "pendingclusterstate.h"
#include "potential_data_loss_report.h"
#include <vespa/document/bucket/bucket.h>
+#include <vespa/storage/common/message_guard.h>
#include <vespa/storage/common/storagelink.h>
#include <vespa/storageapi/message/bucket.h>
#include <vespa/storageapi/messageapi/messagehandler.h>
diff --git a/storage/src/vespa/storage/distributor/top_level_bucket_db_updater.h b/storage/src/vespa/storage/distributor/top_level_bucket_db_updater.h
index d8e49d5c383..921ebf65338 100644
--- a/storage/src/vespa/storage/distributor/top_level_bucket_db_updater.h
+++ b/storage/src/vespa/storage/distributor/top_level_bucket_db_updater.h
@@ -4,11 +4,11 @@
#include "bucketlistmerger.h"
#include "distributor_component.h"
#include "distributormessagesender.h"
-#include "messageguard.h"
#include "operation_routing_snapshot.h"
#include "outdated_nodes_map.h"
#include "pendingclusterstate.h"
#include <vespa/document/bucket/bucket.h>
+#include <vespa/storage/common/message_guard.h>
#include <vespa/storage/common/storagelink.h>
#include <vespa/storageapi/message/bucket.h>
#include <vespa/storageapi/messageapi/messagehandler.h>
diff --git a/storage/src/vespa/storage/storageserver/mergethrottler.cpp b/storage/src/vespa/storage/storageserver/mergethrottler.cpp
index 681d97299fa..2dea5681b85 100644
--- a/storage/src/vespa/storage/storageserver/mergethrottler.cpp
+++ b/storage/src/vespa/storage/storageserver/mergethrottler.cpp
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "mergethrottler.h"
+#include <vespa/storageapi/message/state.h>
#include <vespa/storage/common/nodestateupdater.h>
#include <vespa/storage/common/dummy_mbus_messages.h>
#include <vespa/storage/persistence/messages.h>
diff --git a/storage/src/vespa/storage/storageserver/mergethrottler.h b/storage/src/vespa/storage/storageserver/mergethrottler.h
index e501e0edd39..76a25c0cf22 100644
--- a/storage/src/vespa/storage/storageserver/mergethrottler.h
+++ b/storage/src/vespa/storage/storageserver/mergethrottler.h
@@ -8,9 +8,9 @@
#pragma once
#include <vespa/storage/config/config-stor-server.h>
+#include <vespa/storage/common/message_guard.h>
#include <vespa/storage/common/storagelink.h>
#include <vespa/storage/common/storagecomponent.h>
-#include <vespa/storage/distributor/messageguard.h>
#include <vespa/storageframework/generic/status/htmlstatusreporter.h>
#include <vespa/storageapi/message/bucket.h>
#include <vespa/document/bucket/bucket.h>