// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include namespace config { class ConfigUri; } namespace document { class DocumentTypeRepo; } namespace mbus { class Message; class RPCMessageBus; class Route; class SourceSession; } namespace search::bmcluster { class PendingTracker; /* * Message bus for benchmark cluster. */ class BmMessageBus { class ReplyHandler; std::unique_ptr _reply_handler; std::unique_ptr _message_bus; std::unique_ptr _session; public: BmMessageBus(const config::ConfigUri& config_uri, std::shared_ptr document_type_repo); ~BmMessageBus(); uint32_t get_error_count() const; void send_msg(std::unique_ptr msg, const mbus::Route &route, PendingTracker &tracker); }; }