Changed ack from message::ptr to message::list

This commit is contained in:
Vincent Raman 2015-09-04 19:53:29 +02:00
parent bbbc1e32dd
commit 646bbe0461
3 changed files with 25 additions and 13 deletions

View File

@ -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 <typename T>
@ -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<message::ptr> m_vector;
};

View File

@ -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);
}

View File

@ -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<void(const std::string& name,message::ptr const& message,bool need_ack, message::ptr& ack_message)> event_listener_aux;
typedef std::function<void(const std::string& name,message::ptr const& message,bool need_ack, message::list& ack_message)> event_listener_aux;
typedef std::function<void(event& event)> event_listener;