提交 8357aaea 编写于 作者: Y youngwolf 提交者: youngwolf

Fix warnings in Clang.

上级 1df8bec3
......@@ -18,7 +18,12 @@ file_socket::file_socket(i_server& server_) : server_socket(server_) {}
file_socket::~file_socket() {clear();}
void file_socket::reset() {trans_end(); server_socket::reset();}
void file_socket::take_over(std::shared_ptr<file_socket> socket_ptr) {if (socket_ptr) printf("restore user data from invalid object (" ASCS_LLF ").\n", socket_ptr->id());}
//socket_ptr actually is a pointer of file_socket, use std::dynamic_pointer_cast to convert it.
void file_socket::take_over(std::shared_ptr<server_socket::type_of_object_restore> socket_ptr)
{printf("restore user data from invalid object (" ASCS_LLF ").\n", socket_ptr->id());}
//this works too, but brings warnings with -Woverloaded-virtual option.
//void file_socket::take_over(std::shared_ptr<file_socket> socket_ptr) {printf("restore user data from invalid object (" ASCS_LLF ").\n", socket_ptr->id());}
//msg handling
bool file_socket::on_msg_handle(out_msg_type& msg) {handle_msg(msg); if (0 == get_pending_recv_msg_size()) recv_msg(); return true;}
......
......@@ -18,7 +18,8 @@ public:
//because we don't use objects pool(we don't defined ASCS_REUSE_OBJECT), so this virtual function will
//not be invoked, and can be omitted, but we keep it for the possibility of using it in the future
virtual void reset();
virtual void take_over(std::shared_ptr<file_socket> socket_ptr);
virtual void take_over(std::shared_ptr<server_socket::type_of_object_restore> socket_ptr);
// virtual void take_over(std::shared_ptr<file_socket> socket_ptr); //this works too, but brings warnings with -Woverloaded-virtual option.
protected:
//msg handling
......
......@@ -220,13 +220,13 @@ public:
register_cb(take_over, false)
public:
virtual void take_over(std::shared_ptr<Socket> socket_ptr) call_cb_1_void(take_over, socket_ptr)
virtual void take_over(std::shared_ptr<typename Socket::type_of_object_restore> socket_ptr) call_cb_1_void(take_over, socket_ptr)
private:
void first_init() {cb_take_over.second = true;}
private:
std::pair<std::function<void(Socket*, std::shared_ptr<Socket>)>, bool> cb_take_over;
std::pair<std::function<void(Socket*, std::shared_ptr<typename Socket::type_of_object_restore>)>, bool> cb_take_over;
};
}} //namespace
......
......@@ -19,6 +19,9 @@ namespace ascs { namespace tcp {
template<typename Socket, typename Server = i_server> class generic_server_socket : public Socket, public std::enable_shared_from_this<generic_server_socket<Socket, Server>>
{
public:
typedef generic_server_socket<Socket, Server> type_of_object_restore;
private:
typedef Socket super;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册