]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/socket.h
removed extern from inline function declarations
[wxWidgets.git] / include / wx / socket.h
index 783c767356fd5f55433e960f23dbe344701df203..d991e85afb0855d1c2d2f8dfa53646c07b7fe01f 100644 (file)
@@ -79,14 +79,14 @@ enum
   wxSOCKET_BLOCK = 4
 };
 
-// Type of request
+// Type of socket
 enum wxSockType
 {
-    SOCK_CLIENT,
-    SOCK_SERVER,
-    /* SOCK_DGRAM, */
-    SOCK_INTERNAL,
-    SOCK_UNINIT
+  SOCK_CLIENT,
+  SOCK_SERVER,
+  SOCK_DATAGRAM,
+  SOCK_INTERNAL,
+  SOCK_UNINIT
 };
 
 typedef int wxSockFlags;
@@ -97,6 +97,7 @@ typedef int wxSockFlags;
 
 class WXDLLEXPORT wxTimer;
 class WXDLLEXPORT wxSocketEvent;
+
 class WXDLLEXPORT wxSocketBase : public wxEvtHandler
 {
   DECLARE_CLASS(wxSocketBase)
@@ -114,6 +115,7 @@ public:
 
 protected:
   GSocket      *m_socket;           // GSocket
+  wxEvtHandler *m_evt_handler;      // event handler
   int           m_id;               // Socket id (for event handler)
 
   // Attributes
@@ -132,6 +134,7 @@ protected:
   unsigned long m_timeout;          // IO timeout value
   wxList        m_states;           // Stack of states
   bool          m_interrupt;        // Interrupt ongoing wait operations
+  bool          m_beingDeleted;     // Marked for delayed deletion
 
   // Pushback buffer
   char         *m_unread;           // Pushback buffer
@@ -145,9 +148,10 @@ protected:
 public:
   wxSocketBase();
   virtual ~wxSocketBase();
-  virtual bool Close();
+  virtual bool Destroy();
 
   // Base IO
+  virtual bool Close();
   wxSocketBase& Peek(char* buffer, wxUint32 nbytes);
   wxSocketBase& Read(char* buffer, wxUint32 nbytes);
   wxSocketBase& Write(const char *buffer, wxUint32 nbytes);
@@ -272,6 +276,25 @@ public:
   bool WaitOnConnect(long seconds = -1, long milliseconds = 0);
 };
 
+////////////////////////////////////////////////////////////////////////
+
+class wxDatagramSocket : public wxSocketBase
+{
+  DECLARE_CLASS(wxDatagramSocket)
+
+public:
+  wxDatagramSocket( wxSockAddress& addr, wxSockFlags flags = wxSOCKET_NONE );
+
+  wxDatagramSocket& RecvFrom( wxSockAddress& addr,
+                              char* buf,
+                              wxUint32 nBytes );
+  wxDatagramSocket& SendTo( wxSockAddress& addr,
+                            const char* buf,
+                            wxUint32 nBytes );
+};
+
+////////////////////////////////////////////////////////////////////////
+
 class WXDLLEXPORT wxSocketEvent : public wxEvent {
   DECLARE_DYNAMIC_CLASS(wxSocketEvent)
 public: