]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/socket_private.h
Add a dynamic receiver class for more flexible packet handling
[libs/net.git] / source / net / socket_private.h
index fc8b23be4cf118d6e984f89735b43fc5c0345169..bb9eff6f1c280fbce695dbe4afaf37454a7c7845 100644 (file)
@@ -1,32 +1,35 @@
 #ifndef MSP_NET_SOCKET_PRIVATE_H_
 #define MSP_NET_SOCKET_PRIVATE_H_
 
+#ifndef MSP_NET_PLATFORM_API_H_
+#error platform_api.h must be included to use private headers
+#endif
+
 #include <msp/io/handle.h>
+#include "sockaddr.h"
 #include "socket.h"
+#include "socket_platform.h"
 
 namespace Msp {
 namespace Net {
 
-#ifdef WIN32
-typedef int socklen_t;
-#endif
-
 struct Socket::Private
 {
-#ifdef WIN32
-       SOCKET handle;
-#else
-       int handle;
-#endif
+       SocketHandle handle;
 
        /* On POSIX platforms this is the same as the handle.  This might seem
        strange but it allows the same syntax on both POSIX and Windows. */
        IO::Handle event;
 
+       void set_block(bool);
+       void set_inherit(bool);
        int set_option(int, int, const void *, socklen_t);
        int get_option(int, int, void *, socklen_t *);
 };
 
+std::size_t check_sys_error(std::make_signed<std::size_t>::type, const char *);
+bool check_sys_connect_error(int);
+
 } // namespace Net
 } // namespace Msp