Skip to content

Commit 2c3f49a

Browse files
Nukoooojmigual
andauthored
core: add on_any (#402)
* Add on_any * Update style in sio_socket.cpp To keep the style. "ifs" with element can be put in one line if they fit. Otherwise they should use the bracket style. --------- Co-authored-by: Joan Marcè i Igual <[email protected]>
1 parent ee6e423 commit 2c3f49a

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ Makefile
77
cmake_install.cmake
88
install_manifest.txt
99
libsioclient.a
10-
.DS_Store
10+
.DS_Store
11+
.cache/

src/sio_socket.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ namespace sio
115115

116116
void on(std::string const& event_name,event_listener const& func);
117117

118+
void on_any(event_listener_aux const& func);
119+
120+
void on_any(event_listener const& func);
121+
118122
void off(std::string const& event_name);
119123

120124
void off_all();
@@ -179,6 +183,8 @@ namespace sio
179183

180184
std::map<std::string, event_listener> m_event_binding;
181185

186+
event_listener m_event_listener;
187+
182188
error_listener m_error_listener;
183189

184190
std::unique_ptr<asio::steady_timer> m_connection_timer;
@@ -203,6 +209,16 @@ namespace sio
203209
m_event_binding[event_name] = func;
204210
}
205211

212+
void socket::impl::on_any(event_listener_aux const& func)
213+
{
214+
m_event_listener = event_adapter::do_adapt(func);
215+
}
216+
217+
void socket::impl::on_any(event_listener const& func)
218+
{
219+
m_event_listener = func;
220+
}
221+
206222
void socket::impl::off(std::string const& event_name)
207223
{
208224
std::lock_guard<std::mutex> guard(m_event_mutex);
@@ -443,6 +459,7 @@ namespace sio
443459
event ev = event_adapter::create_event(nsp,name, std::move(message),needAck);
444460
event_listener func = this->get_bind_listener_locked(name);
445461
if(func)func(ev);
462+
if (m_event_listener) m_event_listener(ev);
446463
if(needAck)
447464
{
448465
this->ack(msgId, name, ev.get_ack_message());
@@ -545,6 +562,16 @@ namespace sio
545562
m_impl->on(event_name, func);
546563
}
547564

565+
void socket::on_any(event_listener_aux const& func)
566+
{
567+
m_impl->on_any(func);
568+
}
569+
570+
void socket::on_any(event_listener const& func)
571+
{
572+
m_impl->on_any(func);
573+
}
574+
548575
void socket::off(std::string const& event_name)
549576
{
550577
m_impl->off(event_name);

src/sio_socket.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ namespace sio
6262

6363
void off(std::string const& event_name);
6464

65+
void on_any(event_listener const& func);
66+
67+
void on_any(event_listener_aux const& func);
68+
6569
void off_all();
6670

6771
void close();

0 commit comments

Comments
 (0)