X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cf73271dd6f442a98e86b559d4a55c37e25b99f..0bba37f51ded370ee79e26916c4c94ce5dc1f44e:/include/wx/mac/carbon/gsockmac.h diff --git a/include/wx/mac/carbon/gsockmac.h b/include/wx/mac/carbon/gsockmac.h index 6bb4a2aa71..0b73be833e 100644 --- a/include/wx/mac/carbon/gsockmac.h +++ b/include/wx/mac/carbon/gsockmac.h @@ -21,35 +21,90 @@ #include "gsocket.h" #endif +#ifndef OTUNIXERRORS -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include +#define OTUNIXERRORS 1 +#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 +115,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 */