// Copyright: (c) Guilhem Lavaux
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
+
#ifndef _WX_NETWORK_SOCKET_H
#define _WX_NETWORK_SOCKET_H
#ifdef __GNUG__
-#pragma interface
+#pragma interface "socket.h"
#endif
// ---------------------------------------------------------------------------
class WXDLLEXPORT wxSocketBase : public wxEvtHandler
{
DECLARE_CLASS(wxSocketBase)
+#ifdef __WXMAC__
+ friend void wxMacSocketOnRequestProc(void *refcon , short event) ;
+#endif
+#if defined(__WXGTK__) && defined(WXSOCK_INTERNAL)
+ friend void wxPrereadSocket(wxSocketBase *sock);
+#endif
public:
enum wxSockFlags { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 };
inline size_t LastCount() const { return m_lcount; }
inline int LastError() const { return m_error; }
- inline void SetFlags(wxSockFlags _flags);
+ void SetFlags(wxSockFlags _flags);
inline void SetTimeout(unsigned long sec) { m_timeout = sec; }
// seconds = -1 means infinite wait
friend class wxSocketServer;
friend class wxSocketHandler;
+#ifdef __SALFORDC__
+public:
+#endif
+
wxSocketBase(wxSockFlags flags, wxSockType type);
+
+#ifdef __SALFORDC__
+protected:
+#endif
bool _Wait(long seconds, long microseconds, int type);
virtual bool Connect(wxSockAddress& addr_man, bool wait = TRUE);
- bool WaitOnConnect(long seconds = -1);
+ bool WaitOnConnect(long seconds = -1, long microseconds = 0);
virtual void OnRequest(wxRequestEvent flags);
};
{
DECLARE_CLASS(wxSocketHandler)
protected:
- static wxSocketHandler *master;
#if defined(__WINDOWS__)
wxList *smsg_list;
struct wxSockHandlerInternal *internal;
public:
enum SockStatus { SOCK_NONE, SOCK_DATA, SOCK_CONNECT, SOCK_DISCONNECT,
SOCK_ERROR };
+ static wxSocketHandler *master;
wxSocketHandler();
virtual ~wxSocketHandler();
(wxSocketBase::wxSockFlags flags = wxSocketBase::NONE);
// Create or reuse a socket handler
- static wxSocketHandler& Master()
- { return *((master) ? (master) : (master = new wxSocketHandler())); }
+ static wxSocketHandler& Master() { return *master; }
#if defined(WXSOCK_INTERNAL) && defined(__WINDOWS__)
#define wxEVT_SOCKET wxEVT_FIRST+301
-#define EVT_SOCKET(id, func) { wxEVT_SOCKET, id, 0, (wxObjectEventFunction) (wxEventFunction) (wxSocketEventFunction) & func },
+#define EVT_SOCKET(id, func) { wxEVT_SOCKET, id, 0, \
+ (wxObjectEventFunction) (wxEventFunction) (wxSocketEventFunction) & func, \
+ (wxObject *) NULL },
#endif