summaryrefslogtreecommitdiffstats
path: root/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp')
-rw-r--r--searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp b/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp
index c8d73444652..3a974bb7d9a 100644
--- a/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp
+++ b/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp
@@ -2,6 +2,7 @@
#include "storage_api_rpc_bm_feed_handler.h"
#include "pending_tracker.h"
+#include "storage_reply_error_checker.h"
#include <vespa/document/fieldvalue/document.h>
#include <vespa/document/update/documentupdate.h>
#include <vespa/documentapi/loadtypes/loadtypeset.h>
@@ -58,22 +59,26 @@ set_cluster_up(SharedRpcResources &shared_rpc_resources, storage::api::StorageMe
}
-class StorageApiRpcBmFeedHandler::MyMessageDispatcher : public storage::MessageDispatcher
+class StorageApiRpcBmFeedHandler::MyMessageDispatcher : public storage::MessageDispatcher,
+ public StorageReplyErrorChecker
{
std::mutex _mutex;
vespalib::hash_map<uint64_t, PendingTracker *> _pending;
public:
MyMessageDispatcher()
: storage::MessageDispatcher(),
+ StorageReplyErrorChecker(),
_mutex(),
_pending()
{
}
~MyMessageDispatcher() override;
void dispatch_sync(std::shared_ptr<storage::api::StorageMessage> msg) override {
+ check_error(*msg);
release(msg->getMsgId());
}
void dispatch_async(std::shared_ptr<storage::api::StorageMessage> msg) override {
+ check_error(*msg);
release(msg->getMsgId());
}
void retain(uint64_t msg_id, PendingTracker &tracker) {
@@ -143,4 +148,10 @@ StorageApiRpcBmFeedHandler::remove(const document::Bucket& bucket, const Documen
send_rpc(std::move(cmd), tracker);
}
+uint32_t
+StorageApiRpcBmFeedHandler::get_error_count() const
+{
+ return _message_dispatcher->get_error_count();
+}
+
}