]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/socket.h
Fixed preview navigation as per ancient bug report
[wxWidgets.git] / include / wx / socket.h
index aa1452743fd92d9add753b49db3e44390420d655..965f39a9210dedef34d39987dcd68b1123c529c2 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _WX_NETWORK_SOCKET_H
 #define _WX_NETWORK_SOCKET_H
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
   #pragma interface "socket.h"
 #endif
 
@@ -33,6 +33,7 @@
 
 #include "wx/sckaddr.h"
 #include "wx/gsocket.h"
+#include "wx/list.h"
 
 // ------------------------------------------------------------------------
 // Types and constants
@@ -104,7 +105,7 @@ typedef int wxSocketFlags;
 // wxSocketBase
 // --------------------------------------------------------------------------
 
-class WXDLLEXPORT wxSocketBase : public wxObject
+class WXDLLIMPEXP_BASE wxSocketBase : public wxObject
 {
   DECLARE_CLASS(wxSocketBase)
 
@@ -185,6 +186,11 @@ public:
   void SetNotify(wxSocketEventFlags flags);
   void Notify(bool notify);
 
+  // initialize/shutdown the sockets (usually called automatically)
+  static bool IsInitialized();
+  static bool Initialize();
+  static void Shutdown();
+
   // callbacks are deprecated, use events instead
 #if WXWIN_COMPATIBILITY
   wxSockCbk Callback(wxSockCbk cbk_);
@@ -247,11 +253,16 @@ private:
   bool          m_notify;           // notify events to users?
   wxSocketEventFlags  m_eventmask;  // which events to notify?
 
+  // the initialization count, GSocket is initialized if > 0
+  static size_t m_countInit;
+
   // callbacks are deprecated, use events instead
 #if WXWIN_COMPATIBILITY
   wxSockCbk     m_cbk;              // callback
   char         *m_cdata;            // callback data
 #endif // WXWIN_COMPATIBILITY
+
+    DECLARE_NO_COPY_CLASS(wxSocketBase)
 };
 
 
@@ -259,7 +270,7 @@ private:
 // wxSocketServer
 // --------------------------------------------------------------------------
 
-class WXDLLEXPORT wxSocketServer : public wxSocketBase
+class WXDLLIMPEXP_BASE wxSocketServer : public wxSocketBase
 {
   DECLARE_CLASS(wxSocketServer)
 
@@ -270,6 +281,8 @@ public:
   bool AcceptWith(wxSocketBase& socket, bool wait = TRUE);
 
   bool WaitForAccept(long seconds = -1, long milliseconds = 0);
+
+  DECLARE_NO_COPY_CLASS(wxSocketServer)
 };
 
 
@@ -277,7 +290,7 @@ public:
 // wxSocketClient
 // --------------------------------------------------------------------------
 
-class WXDLLEXPORT wxSocketClient : public wxSocketBase
+class WXDLLIMPEXP_BASE wxSocketClient : public wxSocketBase
 {
   DECLARE_CLASS(wxSocketClient)
 
@@ -288,6 +301,8 @@ public:
   virtual bool Connect(wxSockAddress& addr, bool wait = TRUE);
 
   bool WaitOnConnect(long seconds = -1, long milliseconds = 0);
+
+  DECLARE_NO_COPY_CLASS(wxSocketClient)
 };
 
 
@@ -297,7 +312,7 @@ public:
 
 // WARNING: still in alpha stage
 
-class wxDatagramSocket : public wxSocketBase
+class WXDLLIMPEXP_BASE wxDatagramSocket : public wxSocketBase
 {
   DECLARE_CLASS(wxDatagramSocket)
 
@@ -314,6 +329,7 @@ public:
 /* TODO:
   bool Connect(wxSockAddress& addr);
 */
+  DECLARE_NO_COPY_CLASS(wxDatagramSocket)
 };
 
 
@@ -321,7 +337,7 @@ public:
 // wxSocketEvent
 // --------------------------------------------------------------------------
 
-class WXDLLEXPORT wxSocketEvent : public wxEvent
+class WXDLLIMPEXP_BASE wxSocketEvent : public wxEvent
 {
 public:
   wxSocketEvent(int id = 0)
@@ -345,7 +361,7 @@ public:
   wxSocketNotify  m_event;
   void           *m_clientData;
 
-  DECLARE_DYNAMIC_CLASS(wxSocketEvent)
+  DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSocketEvent)
 };