// // sio_client.h // // Created by Melo Yao on 3/25/15. // #ifndef SIO_CLIENT_H #define SIO_CLIENT_H #include #include #include "sio_message.h" #include "sio_socket.h" namespace sio { class client_impl; class client { public: enum close_reason { close_reason_normal, close_reason_drop }; typedef std::function con_listener; typedef std::function close_listener; typedef std::function reconnect_listener; typedef std::function socket_listener; client(); ~client(); //set listeners and event bindings. void set_open_listener(con_listener const& l); void set_fail_listener(con_listener const& l); void set_reconnecting_listener(con_listener const& l); void set_reconnect_listener(reconnect_listener const& l); void set_close_listener(close_listener const& l); void set_socket_open_listener(socket_listener const& l); void set_socket_close_listener(socket_listener const& l); void clear_con_listeners(); void clear_socket_listeners(); // Client Functions - such as send, etc. void connect(const std::string& uri); void connect(const std::string& uri, const std::map& query); void connect(const std::string& uri, const std::map& query, const std::map& http_extra_headers); void set_reconnect_attempts(int attempts); void set_reconnect_delay(unsigned millis); void set_reconnect_delay_max(unsigned millis); sio::socket::ptr const& socket(const std::string& nsp = ""); // Closes the connection void close(); void sync_close(); bool opened() const; std::string const& get_sessionid() const; private: //disable copy constructor and assign operator. client(client const&){} void operator=(client const&){} client_impl* m_impl; }; } #endif // __SIO_CLIENT__H__