diff options
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.cpp | 13 |
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(); +} + } |