]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/socket.h
Make storing non-trivial data in wxThreadSpecificInfo possible.
[wxWidgets.git] / include / wx / socket.h
index 5181d3b4750e702596766778471ffe83b9506aa1..35ff266216a19eaf13112d59ae6695a45704f10a 100644 (file)
@@ -4,7 +4,6 @@
 // Authors:     Guilhem Lavaux, Guillermo Rodriguez Garcia
 // Modified by:
 // Created:     April 1997
-// RCS-ID:      $Id$
 // Copyright:   (c) Guilhem Lavaux
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -30,6 +29,16 @@ class wxSocketImpl;
 // Types and constants
 // ------------------------------------------------------------------------
 
+// Define the type of native sockets.
+#if defined(__WINDOWS__)
+    // Although socket descriptors are still 32 bit values, even under Win64,
+    // the socket type is 64 bit there.
+    typedef wxUIntPtr wxSOCKET_T;
+#else
+    typedef int wxSOCKET_T;
+#endif
+
+
 // Types of different socket notifications or events.
 //
 // NB: the values here should be consecutive and start with 0 as they are
@@ -71,17 +80,17 @@ enum wxSocketError
 // socket options/flags bit masks
 enum
 {
-    wxSOCKET_NONE 0,
-    wxSOCKET_NOWAIT = 1,
-    wxSOCKET_WAITALL = 2,
-    wxSOCKET_BLOCK = 4,
-    wxSOCKET_REUSEADDR = 8,
-    wxSOCKET_BROADCAST = 16,
-    wxSOCKET_NOBIND = 32,
-    wxSOCKET_NOWAIT_READ = 64,
-    wxSOCKET_WAITALL_READ = 128,
-    wxSOCKET_NOWAIT_WRITE = 256,
-    wxSOCKET_WAITALL_WRITE = 512
+    wxSOCKET_NONE           = 0x0000,
+    wxSOCKET_NOWAIT_READ    = 0x0001,
+    wxSOCKET_NOWAIT_WRITE   = 0x0002,
+    wxSOCKET_NOWAIT         = wxSOCKET_NOWAIT_READ | wxSOCKET_NOWAIT_WRITE,
+    wxSOCKET_WAITALL_READ   = 0x0004,
+    wxSOCKET_WAITALL_WRITE  = 0x0008,
+    wxSOCKET_WAITALL        = wxSOCKET_WAITALL_READ | wxSOCKET_WAITALL_WRITE,
+    wxSOCKET_BLOCK          = 0x0010,
+    wxSOCKET_REUSEADDR      = 0x0020,
+    wxSOCKET_BROADCAST      = 0x0040,
+    wxSOCKET_NOBIND         = 0x0080
 };
 
 typedef int wxSocketFlags;
@@ -187,6 +196,9 @@ public:
     void SetNotify(wxSocketEventFlags flags);
     void Notify(bool notify);
 
+    // Get the underlying socket descriptor.
+    wxSOCKET_T GetSocket() const;
+
     // initialize/shutdown the sockets (done automatically so there is no need
     // to call these functions usually)
     //