1 /* -------------------------------------------------------------------------
2 * Project: GSocket (Generic Socket) for WX
4 * Purpose: GSocket Macintosh header
6 * -------------------------------------------------------------------------
12 #ifndef __GSOCKET_STANDALONE__
16 #if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
18 #ifndef __GSOCKET_STANDALONE__
19 #include "wx/gsocket.h"
24 #include <MacHeaders.c>
25 #define OTUNIXERRORS 1
26 #include <OpenTransport.h>
27 #include <OpenTransportProviders.h>
28 #include <OpenTptInternet.h>
30 /* Definition of GSocket */
36 bool IsOK() { return m_ok
; }
39 GSocketError
SetLocal(GAddress
*address
);
40 GSocketError
SetPeer(GAddress
*address
);
43 GSocketError
SetServer();
44 GSocket
*WaitConnection();
45 int SetReusable() { return 0; }
46 GSocketError
SetNonOriented();
47 GSocketError
Connect(GSocketStream stream
);
48 int Read(char *buffer
, int size
);
49 int Write(const char *buffer
, int size
);
50 GSocketEventFlags
Select(GSocketEventFlags flags
);
51 void SetNonBlocking(int non_block
);
52 void SetTimeout(unsigned long millisec
);
53 GSocketError WXDLLIMPEXP_NET
GetError();
54 void SetCallback(GSocketEventFlags flags
,
55 GSocketCallback callback
, char *cdata
);
56 void UnsetCallback(GSocketEventFlags flags
);
57 GSocketError
GetSockOpt(int level
, int optname
, void *optval
, int *optlen
)
58 { return GSOCK_INVOP
; }
59 GSocketError
SetSockOpt(int level
, int optname
,
60 const void *optval
, int optlen
)
61 { return GSOCK_INVOP
; }
67 GSocketError
Input_Timeout();
68 GSocketError
Output_Timeout();
69 int Recv_Stream(char *buffer
, int size
);
70 int Recv_Dgram(char *buffer
, int size
);
71 int Send_Stream(const char *buffer
, int size
);
72 int Send_Dgram(const char *buffer
, int size
);
76 void Disable_Events();
78 // TODO: Make these protected
80 wxMacNotifierTableRef m_mac_events
;
81 EndpointRef m_endpoint
;
90 unsigned long m_timeout
;
93 GSocketEventFlags m_detected
;
94 GSocketCallback m_cbacks
[GSOCK_MAX_EVENT
];
95 char *m_data
[GSOCK_MAX_EVENT
];
99 /* Compatibility methods to support old C API (from gsocket.h) */
100 inline void GSocket_Shutdown(GSocket
*socket
)
101 { socket
->Shutdown(); }
102 inline GSocketError
GSocket_SetLocal(GSocket
*socket
, GAddress
*address
)
103 { return socket
->SetLocal(address
); }
104 inline GSocketError
GSocket_SetPeer(GSocket
*socket
, GAddress
*address
)
105 { return socket
->SetPeer(address
); }
106 inline GAddress
*GSocket_GetLocal(GSocket
*socket
)
107 { return socket
->GetLocal(); }
108 inline GAddress
*GSocket_GetPeer(GSocket
*socket
)
109 { return socket
->GetPeer(); }
110 inline GSocketError
GSocket_SetServer(GSocket
*socket
)
111 { return socket
->SetServer(); }
112 inline GSocket
*GSocket_WaitConnection(GSocket
*socket
)
113 { return socket
->WaitConnection(); }
114 inline int GSocket_SetReusable(GSocket
*socket
)
115 { return socket
->SetReusable(); }
116 inline GSocketError
GSocket_Connect(GSocket
*socket
, GSocketStream stream
)
117 { return socket
->Connect(stream
); }
118 inline GSocketError
GSocket_SetNonOriented(GSocket
*socket
)
119 { return socket
->SetNonOriented(); }
120 inline int GSocket_Read(GSocket
*socket
, char *buffer
, int size
)
121 { return socket
->Read(buffer
,size
); }
122 inline int GSocket_Write(GSocket
*socket
, const char *buffer
, int size
)
123 { return socket
->Write(buffer
,size
); }
124 inline GSocketEventFlags
GSocket_Select(GSocket
*socket
, GSocketEventFlags flags
)
125 { return socket
->Select(flags
); }
126 inline void GSocket_SetNonBlocking(GSocket
*socket
, int non_block
)
127 { socket
->SetNonBlocking(non_block
); }
128 inline void GSocket_SetTimeout(GSocket
*socket
, unsigned long millisec
)
129 { socket
->SetTimeout(millisec
); }
130 inline GSocketError
GSocket_GetError(GSocket
*socket
)
131 { return socket
->GetError(); }
132 inline void GSocket_SetCallback(GSocket
*socket
, GSocketEventFlags flags
,
133 GSocketCallback fallback
, char *cdata
)
134 { socket
->SetCallback(flags
,fallback
,cdata
); }
135 inline void GSocket_UnsetCallback(GSocket
*socket
, GSocketEventFlags flags
)
136 { socket
->UnsetCallback(flags
); }
137 inline GSocketError
GSocket_GetSockOpt(GSocket
*socket
, int level
, int optname
,
138 void *optval
, int *optlen
)
139 { return socket
->GetSockOpt(level
,optname
,optval
,optlen
); }
140 inline GSocketError
GSocket_SetSockOpt(GSocket
*socket
, int level
, int optname
,
141 const void *optval
, int optlen
)
142 { return socket
->SetSockOpt(level
,optname
,optval
,optlen
); }
143 inline void GSocket_destroy(GSocket
*socket
)
148 #endif /* __cplusplus */
150 /* Definition of GAddress */
156 GAddressType m_family
;
157 GSocketError m_error
;
162 void _GSocket_Internal_Proc(unsigned long e
, void* data
) ;
166 GSocketError
_GAddress_translate_from(GAddress
*address
,
168 GSocketError
_GAddress_translate_to(GAddress
*address
,
171 GSocketError
_GAddress_Init_INET(GAddress
*address
);
175 #endif /* __cplusplus */
177 #endif /* wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__) */
179 #endif /* __GSOCK_UNX_H */