4 #include <boost/shared_ptr.hpp>
5 #include <boost/asio.hpp>
6 #include <boost/make_shared.hpp>
7 #include <boost/any.hpp>
8 #include <boost/system/error_code.hpp>
9 #include <boost/function.hpp>
10 #include <boost/enable_shared_from_this.hpp>
11 #include <boost/chrono.hpp>
12 #include <boost/asio/basic_waitable_timer.hpp>
13 #include <boost/thread.hpp>
16 #include "gtest/gtest.h"
52 typedef boost::asio::basic_waitable_timer<boost::chrono::steady_clock>
steady_timer;
59 class DpyMwClient:
public boost::enable_shared_from_this<DpyMwClient>
72 std::condition_variable mCv;
73 boost::asio::io_service mIo;
78 boost::shared_ptr<DpyMwSubscriber> m_subscriber;
79 boost::shared_ptr<DpyMwDealer> m_dealer;
80 int lastMessageID = 0;
81 std::map<int, Global_config> m_map_dealerHandlers;
82 std::map<int, std::vector<boost::any>> m_map_subscriberHandlers;
97 void sendRequest(
int requestType,
int responseType, std::string content, boost::any handler,
int ms_timeout = 2000);
107 DpyMwClient(std::string& ip,
int dport,
int sport);
111 void subscribe(
int messageType, boost::any handler);
112 void unsubscribe(
int messageType);
115 void monitorServiceAvailability_U();
119 void dealer_handler(
const std::string &msg);
120 void dealerTimer_handler(
const boost::system::error_code& e);
121 void heartbeatTimer_handler(
const boost::system::error_code& e);
122 void subscriber_handler(
const std::string &msg);
126 FRIEND_TEST(Client_dealer_test, Request_timeout);
127 FRIEND_TEST(Client_dealer_test, Request_answered);