diff --git a/includes/async_redis/connection.hpp b/includes/async_redis/connection.hpp index dd48f3c..772ea2b 100644 --- a/includes/async_redis/connection.hpp +++ b/includes/async_redis/connection.hpp @@ -19,7 +19,7 @@ namespace async_redis public: using parser_t = parser::base_resp_parser::parser; - using reply_cb_t = std::function; + using reply_cb_t = std::function; connection(event_loop::event_loop_ev& event_loop); diff --git a/includes/async_redis/monitor.hpp b/includes/async_redis/monitor.hpp index b6408ae..8868ff5 100644 --- a/includes/async_redis/monitor.hpp +++ b/includes/async_redis/monitor.hpp @@ -25,7 +25,7 @@ namespace async_redis }; using parser_t = parser::base_resp_parser::parser; - using watcher_cb_t = std::function; + using watcher_cb_t = std::function; monitor(event_loop::event_loop_ev &event_loop); diff --git a/includes/async_redis/sentinel.hpp b/includes/async_redis/sentinel.hpp index e6cf43f..cbfa04d 100644 --- a/includes/async_redis/sentinel.hpp +++ b/includes/async_redis/sentinel.hpp @@ -55,7 +55,7 @@ namespace async_redis { private: int connected_ = 0; - std::unique_ptr stream_; - std::unique_ptr conn_; + monitor stream_; + connection conn_; }; } diff --git a/src/monitor.cpp b/src/monitor.cpp index 65ac94d..cf9e347 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -206,12 +206,13 @@ void monitor::report_disconnect() t2.swap(pwatchers_); string str; + parser_t p; for(auto &w : t1) - w.second(str, nullptr, EventState::Disconnected); + w.second(str, p, EventState::Disconnected); for(auto &w : t2) - w.second(str, nullptr, EventState::Disconnected); + w.second(str, p, EventState::Disconnected); disconnect(); } diff --git a/src/sentinel.cpp b/src/sentinel.cpp index 922bfa0..60eef0f 100644 --- a/src/sentinel.cpp +++ b/src/sentinel.cpp @@ -6,13 +6,13 @@ namespace async_redis { sentinel::sentinel(event_loop::event_loop_ev &event_loop) - : conn_(std::make_unique(event_loop)), - stream_(std::make_unique(event_loop)) + : conn_(event_loop), + stream_(event_loop) { } bool sentinel::is_connected() const { - return stream_->is_connected() && conn_->is_connected(); + return stream_.is_connected() && conn_.is_connected(); } bool sentinel::connect(const string& ip, int port, connect_cb_t&& connector) @@ -25,8 +25,8 @@ bool sentinel::connect(const string& ip, int port, connect_cb_t&& connector) } void sentinel::disconnect() { - stream_->disconnect(); - conn_->disconnect(); + stream_.disconnect(); + conn_.disconnect(); } bool sentinel::failover(const string& clustername, connection::reply_cb_t&& reply) @@ -53,7 +53,7 @@ bool sentinel::watch_master_change(cb_watch_master_change_t&& fn) [&]()-> bool { using State = monitor::EventState; - return stream_->subscribe({"+switch-master"}, + return stream_.subscribe({"+switch-master"}, [this, fn = std::move(fn)](const string& channel, parser_t event, State state) -> void { switch(state) @@ -147,8 +147,8 @@ void sentinel::connect_all(const string& ip, int port, const connect_cb_t& conne { auto cb = std::bind(&sentinel::check_connected, this, connector, std::placeholders::_1); - conn_->connect(cb, ip, port); - stream_->connect(cb, ip, port); + conn_.connect(cb, ip, port); + stream_.connect(cb, ip, port); } void sentinel::check_connected(const connect_cb_t& connector, bool res) @@ -171,7 +171,7 @@ bool sentinel::send(std::list&& words, connection::reply_cb_t&& reply) cmd += " " + w; cmd += "\r\n"; - if (!conn_->send(std::move(cmd), std::move(reply))) { + if (!conn_.send(std::move(cmd), std::move(reply))) { disconnect(); return false; }