X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cf73271dd6f442a98e86b559d4a55c37e25b99f..ce4b7808ca940be201422a066de141ca12f13863:/include/wx/mac/carbon/gsockmac.h diff --git a/include/wx/mac/carbon/gsockmac.h b/include/wx/mac/carbon/gsockmac.h index 6bb4a2aa71..de035d0d40 100644 --- a/include/wx/mac/carbon/gsockmac.h +++ b/include/wx/mac/carbon/gsockmac.h @@ -1,8 +1,10 @@ /* ------------------------------------------------------------------------- - * Project: GSocket (Generic Socket) for WX - * Name: gsockunx.h - * Purpose: GSocket Macintosh header - * CVSID: $Id$ + * Project: GSocket (Generic Socket) for WX + * Name: gsockunx.h + * Copyright: (c) Guilhem Lavaux + * Licence: wxWindows Licence + * Purpose: GSocket Macintosh header + * CVSID: $Id$ * ------------------------------------------------------------------------- */ @@ -21,35 +23,92 @@ #include "gsocket.h" #endif +#ifndef OTUNIXERRORS -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include +#define OTUNIXERRORS 1 +// we get a conflict in OT headers otherwise : +#undef EDEADLK +#include +#include +#include -typedef GSocket* GSocketPtr ; +#endif /* Definition of GSocket */ -struct _GSocket +class GSocket { +public: + GSocket(); + ~GSocket(); + bool IsOk() { return m_ok; } + + void Shutdown(); + GSocketError SetLocal(GAddress *address); + GSocketError SetPeer(GAddress *address); + GAddress *GetLocal(); + GAddress *GetPeer(); + GSocketError SetServer(); + GSocket *WaitConnection(); + bool SetReusable() { return false; } + GSocketError SetNonOriented(); + GSocketError Connect(GSocketStream stream); + int Read(char *buffer, int size); + int Write(const char *buffer, int size); + GSocketEventFlags Select(GSocketEventFlags flags); + void SetNonBlocking(bool non_block); + void SetTimeout(unsigned long millisec); + GSocketError WXDLLIMPEXP_NET GetError(); + void SetCallback(GSocketEventFlags flags, + GSocketCallback callback, char *cdata); + void UnsetCallback(GSocketEventFlags flags); + GSocketError GetSockOpt(int level, int optname, void *optval, int *optlen) + { return GSOCK_INVOP; } + GSocketError SetSockOpt(int level, int optname, + const void *optval, int optlen) + { return GSOCK_INVOP; } + +protected: + bool m_ok; + + /* Input / Output */ + GSocketError Input_Timeout(); + GSocketError Output_Timeout(); + int Recv_Stream(char *buffer, int size); + int Recv_Dgram(char *buffer, int size); + int Send_Stream(const char *buffer, int size); + int Send_Dgram(const char *buffer, int size); + + /* Callbacks */ + void Enable_Events(); + void Disable_Events(); + +// TODO: Make these protected +public: wxMacNotifierTableRef m_mac_events ; EndpointRef m_endpoint; GAddress *m_local; GAddress *m_peer; GSocketError m_error; - int m_non_blocking; - int m_server; - int m_stream; - int m_oriented; + bool m_non_blocking; + bool m_server; + bool m_stream; + bool m_oriented; unsigned long m_timeout; /* Callbacks */ GSocketEventFlags m_detected; GSocketCallback m_cbacks[GSOCK_MAX_EVENT]; char *m_data[GSOCK_MAX_EVENT]; - int m_takesEvents ; + bool m_takesEvents ; }; + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + /* Definition of GAddress */ struct _GAddress @@ -60,19 +119,8 @@ struct _GAddress GSocketError m_error; }; -/* Input / Output */ - -GSocketError _GSocket_Input_Timeout(GSocket *socket); -GSocketError _GSocket_Output_Timeout(GSocket *socket); -int _GSocket_Recv_Stream(GSocket *socket, char *buffer, int size); -int _GSocket_Recv_Dgram(GSocket *socket, char *buffer, int size); -int _GSocket_Send_Stream(GSocket *socket, const char *buffer, int size); -int _GSocket_Send_Dgram(GSocket *socket, const char *buffer, int size); - /* Callbacks */ -void _GSocket_Enable_Events(GSocket *socket); -void _GSocket_Disable_Events(GSocket *socket); void _GSocket_Internal_Proc(unsigned long e , void* data ) ; /* GAddress */