Skip to content

Commit 96ea9f8

Browse files
author
hamidr
committed
Performance improvments
1 parent e5e25dd commit 96ea9f8

File tree

5 files changed

+16
-15
lines changed

5 files changed

+16
-15
lines changed

includes/async_redis/connection.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace async_redis
1919

2020
public:
2121
using parser_t = parser::base_resp_parser::parser;
22-
using reply_cb_t = std::function<void (parser_t)>;
22+
using reply_cb_t = std::function<void (parser_t&)>;
2323

2424
connection(event_loop::event_loop_ev& event_loop);
2525

includes/async_redis/monitor.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace async_redis
2525
};
2626

2727
using parser_t = parser::base_resp_parser::parser;
28-
using watcher_cb_t = std::function<void (const string&, parser_t, EventState)>;
28+
using watcher_cb_t = std::function<void (const string&, parser_t&, EventState)>;
2929

3030
monitor(event_loop::event_loop_ev &event_loop);
3131

includes/async_redis/sentinel.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ namespace async_redis {
5555

5656
private:
5757
int connected_ = 0;
58-
std::unique_ptr<monitor> stream_;
59-
std::unique_ptr<connection> conn_;
58+
monitor stream_;
59+
connection conn_;
6060
};
6161
}

src/monitor.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,13 @@ void monitor::report_disconnect()
206206
t2.swap(pwatchers_);
207207

208208
string str;
209+
parser_t p;
209210

210211
for(auto &w : t1)
211-
w.second(str, nullptr, EventState::Disconnected);
212+
w.second(str, p, EventState::Disconnected);
212213

213214
for(auto &w : t2)
214-
w.second(str, nullptr, EventState::Disconnected);
215+
w.second(str, p, EventState::Disconnected);
215216

216217
disconnect();
217218
}

src/sentinel.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
namespace async_redis
77
{
88
sentinel::sentinel(event_loop::event_loop_ev &event_loop)
9-
: conn_(std::make_unique<connection>(event_loop)),
10-
stream_(std::make_unique<monitor>(event_loop))
9+
: conn_(event_loop),
10+
stream_(event_loop)
1111
{ }
1212

1313
bool sentinel::is_connected() const
1414
{
15-
return stream_->is_connected() && conn_->is_connected();
15+
return stream_.is_connected() && conn_.is_connected();
1616
}
1717

1818
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)
2525
}
2626

2727
void sentinel::disconnect() {
28-
stream_->disconnect();
29-
conn_->disconnect();
28+
stream_.disconnect();
29+
conn_.disconnect();
3030
}
3131

3232
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)
5353
[&]()-> bool {
5454
using State = monitor::EventState;
5555

56-
return stream_->subscribe({"+switch-master"},
56+
return stream_.subscribe({"+switch-master"},
5757
[this, fn = std::move(fn)](const string& channel, parser_t event, State state) -> void
5858
{
5959
switch(state)
@@ -147,8 +147,8 @@ void sentinel::connect_all(const string& ip, int port, const connect_cb_t& conne
147147
{
148148
auto cb = std::bind(&sentinel::check_connected, this, connector, std::placeholders::_1);
149149

150-
conn_->connect(cb, ip, port);
151-
stream_->connect(cb, ip, port);
150+
conn_.connect(cb, ip, port);
151+
stream_.connect(cb, ip, port);
152152
}
153153

154154
void sentinel::check_connected(const connect_cb_t& connector, bool res)
@@ -171,7 +171,7 @@ bool sentinel::send(std::list<string>&& words, connection::reply_cb_t&& reply)
171171
cmd += " " + w;
172172
cmd += "\r\n";
173173

174-
if (!conn_->send(std::move(cmd), std::move(reply))) {
174+
if (!conn_.send(std::move(cmd), std::move(reply))) {
175175
disconnect();
176176
return false;
177177
}

0 commit comments

Comments
 (0)