From 646bbe0461eea473dc48fb493b940de90ec49e42 Mon Sep 17 00:00:00 2001 From: Vincent Raman Date: Fri, 4 Sep 2015 19:53:29 +0200 Subject: [PATCH] Changed ack from message::ptr to message::list --- src/sio_message.h | 13 +++++++++++++ src/sio_socket.cpp | 15 +++++++-------- src/sio_socket.h | 10 +++++----- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/sio_message.h b/src/sio_message.h index 6053523..c9fdd12 100755 --- a/src/sio_message.h +++ b/src/sio_message.h @@ -291,6 +291,12 @@ namespace sio m_vector(std::move(rhs.m_vector)) { + } + + list & operator= (const message::list && rhs) + { + m_vector = std::move(rhs.m_vector); + return *this; } template @@ -369,6 +375,13 @@ namespace sio return arr; } + message::ptr to_array_message() const + { + message::ptr arr = array_message::create(); + arr->get_vector().insert(arr->get_vector().end(),m_vector.begin(),m_vector.end()); + return arr; + } + private: vector m_vector; }; diff --git a/src/sio_socket.cpp b/src/sio_socket.cpp index 6be373d..b48134e 100644 --- a/src/sio_socket.cpp +++ b/src/sio_socket.cpp @@ -67,10 +67,10 @@ namespace sio return m_need_ack; } - void event::put_ack_message(message::ptr const& ack_message) + void event::put_ack_message(message::list const& ack_message) { if(m_need_ack) - m_ack_message = ack_message; + m_ack_message = std::move(ack_message); } inline @@ -91,13 +91,13 @@ namespace sio { } - message::ptr const& event::get_ack_message() const + message::list const& event::get_ack_message() const { return m_ack_message; } inline - message::ptr& event::get_ack_message_impl() + message::list& event::get_ack_message_impl() { return m_ack_message; } @@ -155,7 +155,7 @@ namespace sio event_listener get_bind_listener_locked(string const& event); - void ack(int msgId,string const& name,message::ptr const& ack_message); + void ack(int msgId,string const& name,message::list const& ack_message); void timeout_connection(const boost::system::error_code &ec); @@ -449,10 +449,9 @@ namespace sio } } - void socket::impl::ack(int msgId, const string &name, const message::ptr &ack_message) + void socket::impl::ack(int msgId, const string &name, const message::list &ack_message) { - message::list li(ack_message); - packet p(m_nsp, li.to_array_message(name),msgId,true); + packet p(m_nsp, ack_message.to_array_message(),msgId,true); send_packet(p); } diff --git a/src/sio_socket.h b/src/sio_socket.h index c7cc235..53fa95a 100644 --- a/src/sio_socket.h +++ b/src/sio_socket.h @@ -19,22 +19,22 @@ namespace sio bool need_ack() const; - void put_ack_message(message::ptr const& ack_message); + void put_ack_message(message::list const& ack_message); - message::ptr const& get_ack_message() const; + message::list const& get_ack_message() const; protected: event(std::string const& nsp,std::string const& name,message::list const& messages,bool need_ack); event(std::string const& nsp,std::string const& name,message::list&& messages,bool need_ack); - message::ptr& get_ack_message_impl(); + message::list& get_ack_message_impl(); private: const std::string m_nsp; const std::string m_name; const message::list m_messages; const bool m_need_ack; - message::ptr m_ack_message; + message::list m_ack_message; friend class event_adapter; }; @@ -46,7 +46,7 @@ namespace sio class socket { public: - typedef std::function event_listener_aux; + typedef std::function event_listener_aux; typedef std::function event_listener;