sock.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:12k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #if !defined( _SOCK_INL_ )
  36. #define _SOCK_INL_
  37. #include "hxsock.h"
  38. /*
  39.  * First the CHXSock inlines
  40.  */
  41. // This function branches on whether the socket is TCP or UDP 
  42. // (different code for getting through a Firewall)
  43. #if defined( _INLINE_CHXSOCK_ )
  44. __inline int PASCAL FAR CHXSock::HXconnect( SOCKET s, const struct sockaddr FAR *name, int namelen )
  45. {
  46. assert( m_hLib && _hxconnect /* && gpProxy */ );
  47. return( _hxconnect( s, (const struct ::sockaddr FAR *)name, namelen ) );
  48. }
  49. // This function branches on whether the socket is TCP or UDP 
  50. // (different code for getting through a Firewall)
  51. __inline int PASCAL FAR  CHXSock::HXbind ( SOCKET s, const struct sockaddr FAR *addr, int namelen )
  52. {
  53. assert( m_hLib && _hxbind /* && gpProxy */ );
  54. return( _hxbind( s, (const struct ::sockaddr FAR *)addr, namelen ) );
  55. }
  56. // This function branches on whether the socket is TCP or UDP 
  57. // (different code for getting through a Firewall)
  58. __inline int PASCAL FAR CHXSock::HXlisten( SOCKET s, int backlog )
  59. {
  60. assert( m_hLib && _hxlisten /* && gpProxy */ );
  61. return( _hxlisten( s, backlog ) );
  62. }
  63. // This function branches on whether the socket is TCP or UDP 
  64. // (different code for getting through a Firewall)
  65. __inline int PASCAL FAR CHXSock::HXgetsockname( SOCKET s, struct sockaddr FAR *name, int FAR * namelen )
  66. {
  67. assert( m_hLib && _hxgetsockname /* && gpProxy */ );
  68. return( _hxgetsockname( s, (struct ::sockaddr FAR *)name, namelen ) );
  69. }
  70. // This function branches on whether the socket is TCP or UDP 
  71. // (different code for getting through a Firewall)
  72. __inline u_int PASCAL FAR CHXSock::HXaccept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen )
  73. {
  74. assert( m_hLib && _hxaccept /* && gpProxy */ );
  75. return( _hxaccept( s, (struct ::sockaddr FAR *)addr, addrlen ) );
  76. }
  77. __inline int PASCAL FAR CHXSock::HXclosesocket( SOCKET s )
  78. {
  79. assert( m_hLib && _hxclosesocket );
  80. return( _hxclosesocket( s ) );
  81. }
  82. __inline int PASCAL FAR CHXSock::HXioctlsocket( SOCKET s, long cmd, u_long FAR *argp )
  83. {
  84. assert( m_hLib && _hxioctlsocket );
  85. return( _hxioctlsocket( s, cmd, argp ) );
  86. }
  87. __inline int PASCAL FAR CHXSock::HXgetpeername( SOCKET s, struct sockaddr FAR *name, int FAR * namelen )
  88. {
  89. assert( m_hLib && _hxgetpeername );
  90. return( _hxgetpeername( s, name, namelen ) );
  91. }
  92. __inline int PASCAL FAR CHXSock::HXgetsockopt( SOCKET s, int level, int optname, char FAR * optval, int FAR *optlen )
  93. {
  94. assert( m_hLib && _hxgetsockopt );
  95. return( _hxgetsockopt( s, level, optname, optval, optlen ) );
  96. }
  97. __inline u_long PASCAL FAR CHXSock::HXhtonl( u_long hostlong )
  98. {
  99. assert( m_hLib && _hxhtonl );
  100. return( _hxhtonl( hostlong ) );
  101. }
  102. __inline u_short PASCAL FAR CHXSock::HXhtons( u_short hostshort )
  103. {
  104. assert( m_hLib && _hxhtons );
  105. return( _hxhtons( hostshort ) );
  106. }
  107. __inline unsigned long PASCAL FAR CHXSock::HXinet_addr( const char FAR * cp )
  108. {
  109. assert( m_hLib && _hxinet_addr );
  110. return( _hxinet_addr( cp ) );
  111. }
  112. __inline char FAR * PASCAL FAR CHXSock::HXinet_ntoa( struct in_addr in )
  113. {
  114. assert( m_hLib && _hxinet_ntoa );
  115. return( _hxinet_ntoa( in ) );
  116. }
  117. __inline u_long PASCAL FAR CHXSock::HXntohl( u_long netlong )
  118. {
  119. assert( m_hLib && _hxntohl );
  120. return( _hxntohl( netlong ) );
  121. }
  122. __inline u_short PASCAL FAR CHXSock::HXntohs( u_short netshort )
  123. {
  124. assert( m_hLib && _hxntohs );
  125. return( _hxntohs( netshort ) );
  126. }
  127. __inline int PASCAL FAR CHXSock::HXrecv( SOCKET s, char FAR * buf, int len, int flags )
  128. {
  129. assert( m_hLib && _hxrecv );
  130. return( _hxrecv( s, buf, len, flags ) );
  131. }
  132. __inline int PASCAL FAR CHXSock::HXrecvfrom( SOCKET s, char FAR * buf, int len, int flags, struct sockaddr FAR *from, int FAR * fromlen )
  133. {
  134. assert( m_hLib && _hxrecvfrom );
  135. return( _hxrecvfrom( s, buf, len, flags, from, fromlen ) );
  136. }
  137. __inline int PASCAL FAR CHXSock::HXselect( int nfds, fd_set FAR *readfds, fd_set FAR *writefds, fd_set FAR *exceptfds, const struct timeval FAR *timeout )
  138. {
  139. assert( m_hLib && _hxselect );
  140. return( _hxselect( nfds, readfds, writefds, exceptfds, timeout ) );
  141. }
  142. __inline int PASCAL FAR CHXSock::HXsend( SOCKET s, const char FAR * buf, int len, int flags )
  143. {
  144. assert( m_hLib && _hxsend );
  145. return( _hxsend( s, buf, len, flags ) );
  146. }
  147. __inline int PASCAL FAR CHXSock::HXsendto( SOCKET s, const char FAR * buf, int len, int flags, const struct sockaddr FAR *to, int tolen )
  148. {
  149. assert( m_hLib && _hxsendto );
  150. return( _hxsendto( s, buf, len, flags, to, tolen ) );
  151. }
  152. __inline int PASCAL FAR CHXSock::HXsetsockopt( SOCKET s, int level, int optname, const char FAR * optval, int optlen )
  153. {
  154. assert( m_hLib && _hxsetsockopt );
  155. return( _hxsetsockopt( s, level, optname, optval, optlen ) );
  156. }
  157. __inline int PASCAL FAR CHXSock::HXshutdown( SOCKET s, int how )
  158. {
  159. assert( m_hLib && _hxshutdown );
  160. return( _hxshutdown( s, how ) );
  161. }
  162. __inline SOCKET PASCAL FAR CHXSock::HXsocket( int af, int type, int protocol )
  163. {
  164. assert( m_hLib && _hxsocket );
  165. return( _hxsocket( af, type, protocol ) );
  166. }
  167. /* Database function prototypes */
  168. __inline struct hostent FAR * PASCAL FAR CHXSock::HXgethostbyaddr( const char FAR * addr, int len, int type )
  169. {
  170. assert( m_hLib && _hxgethostbyaddr );
  171. return( _hxgethostbyaddr( addr, len, type ) );
  172. }
  173. __inline struct hostent FAR * PASCAL FAR CHXSock::HXgethostbyname( const char FAR * name )
  174. {
  175. struct hostent FAR *lpHost;
  176. assert( m_hLib && _hxgethostbyname );
  177. lpHost = _hxgethostbyname( name );
  178. return( lpHost );
  179. }
  180. __inline int PASCAL FAR  CHXSock::HXgethostname( char FAR * name, int namelen )
  181. {
  182. assert( m_hLib && _hxgethostname );
  183. return( _hxgethostname( name, namelen ) );
  184. }
  185. #ifndef _WINCE
  186. __inline struct servent FAR * PASCAL FAR CHXSock::HXgetservbyport( int port, const char FAR * proto )
  187. {
  188. assert( m_hLib && _hxgetservbyport );
  189. return( _hxgetservbyport( port, proto ) );
  190. }
  191. __inline struct servent FAR * PASCAL FAR CHXSock::HXgetservbyname( const char FAR * name,
  192.  const char FAR * proto )
  193. {
  194. assert( m_hLib && _hxgetservbyname );
  195. return( _hxgetservbyname( name, proto ) );
  196. }
  197. __inline struct protoent FAR * PASCAL FAR CHXSock::HXgetprotobynumber( int proto )
  198. {
  199. assert( m_hLib && _hxgetprotobynumber );
  200. return( _hxgetprotobynumber( proto ) );
  201. }
  202. __inline struct protoent FAR * PASCAL FAR CHXSock::HXgetprotobyname( const char FAR * name )
  203. {
  204. assert( m_hLib && _hxgetprotobyname );
  205. return( _hxgetprotobyname( name ) );
  206. }
  207. #endif /* _WINCE */
  208. /* Microsoft Windows Extension function prototypes */
  209. __inline int PASCAL FAR CHXSock::HXWSAStartup( WORD wVersionRequired, LPWSADATA lpWSAData )
  210. {
  211. int iRet;
  212. assert( m_hLib && _hxWSAStartup );
  213. iRet = _hxWSAStartup( wVersionRequired, lpWSAData );
  214. if (iRet)
  215. {
  216. return( iRet );
  217. }
  218. else
  219. {
  220. return( 0 );
  221. }
  222. }
  223. __inline int PASCAL FAR CHXSock::HXWSACleanup( void )
  224. {
  225. assert( m_hLib && _hxWSACleanup );
  226. return( _hxWSACleanup() );
  227. }
  228. __inline void PASCAL FAR CHXSock::HXWSASetLastError( int iError )
  229. {
  230. assert( m_hLib && _hxWSASetLastError );
  231. _hxWSASetLastError( iError );
  232. }
  233. __inline int PASCAL FAR CHXSock::HXWSAGetLastError( void )
  234. {
  235. assert( m_hLib && _hxWSAGetLastError );
  236. return( _hxWSAGetLastError() );
  237. }
  238. #ifndef _WINCE
  239. __inline BOOL PASCAL FAR CHXSock::HXWSAIsBlocking( void )
  240. {
  241. assert( m_hLib && _hxWSAIsBlocking );
  242. return( _hxWSAIsBlocking() );
  243. }
  244. __inline int PASCAL FAR CHXSock::HXWSAUnhookBlockingHook( void )
  245. {
  246. assert( m_hLib && _hxWSAUnhookBlockingHook );
  247. return( _hxWSAUnhookBlockingHook() );
  248. }
  249. __inline FARPROC PASCAL FAR CHXSock::HXWSASetBlockingHook( FARPROC lpBlockFunc )
  250. {
  251. assert( m_hLib && _hxWSASetBlockingHook );
  252. return( _hxWSASetBlockingHook( lpBlockFunc ) );
  253. }
  254. __inline int PASCAL FAR CHXSock::HXWSACancelBlockingCall( void )
  255. {
  256. assert( m_hLib && _hxWSACancelBlockingCall );
  257. return( _hxWSACancelBlockingCall() );
  258. }
  259. __inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetServByName( HWND hWnd, u_int wMsg, const char FAR * name, const char FAR * proto, char FAR * buf, int buflen )
  260. {
  261. assert( m_hLib && _hxWSAAsyncGetServByName );
  262. return( _hxWSAAsyncGetServByName( hWnd, wMsg, name, proto, buf, buflen ) );
  263. }
  264. __inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetServByPort( HWND hWnd, u_int wMsg, int port, const char FAR * proto, char FAR * buf, int buflen )
  265. {
  266. assert( m_hLib && _hxWSAAsyncGetServByPort );
  267. return( _hxWSAAsyncGetServByPort( hWnd, wMsg, port, proto, buf, buflen ) );
  268. }
  269. __inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetProtoByName( HWND hWnd, u_int wMsg, const char FAR * name, char FAR * buf, int buflen )
  270. {
  271. assert( m_hLib && _hxWSAAsyncGetProtoByName );
  272. return( _hxWSAAsyncGetProtoByName( hWnd, wMsg, name, buf, buflen ) );
  273. }
  274. __inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetProtoByNumber( HWND hWnd, u_int wMsg, int number, char FAR * buf, int buflen )
  275. {
  276. assert( m_hLib && _hxWSAAsyncGetProtoByNumber );
  277. return( _hxWSAAsyncGetProtoByNumber( hWnd, wMsg, number, buf, buflen ) );
  278. }
  279. __inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetHostByName( HWND hWnd, u_int wMsg, const char FAR * name, char FAR * buf, int buflen )
  280. {
  281. assert( m_hLib && _hxWSAAsyncGetHostByName );
  282. return( _hxWSAAsyncGetHostByName( hWnd, wMsg, name, buf, buflen ) );
  283. }
  284. __inline HANDLE PASCAL FAR CHXSock::HXWSAAsyncGetHostByAddr( HWND hWnd, u_int wMsg, const char FAR * addr, int len, int type, const char FAR * buf, int buflen )
  285. {
  286. assert( m_hLib && _hxWSAAsyncGetHostByAddr );
  287. return( _hxWSAAsyncGetHostByAddr( hWnd, wMsg, addr, len, type, buf, buflen ) );
  288. }
  289. __inline int PASCAL FAR CHXSock::HXWSACancelAsyncRequest( HANDLE hAsyncTaskHandle )
  290. {
  291. assert( m_hLib && _hxWSACancelAsyncRequest );
  292. return( _hxWSACancelAsyncRequest( hAsyncTaskHandle ) );
  293. }
  294. __inline int PASCAL FAR CHXSock::HXWSAAsyncSelect( SOCKET s, HWND hWnd, u_int wMsg, long lEvent)
  295. {
  296. assert( m_hLib && _hxWSAAsyncSelect );
  297. return( _hxWSAAsyncSelect( s, hWnd, wMsg, lEvent ) );
  298. }
  299. #endif /* _WINCE */
  300. __inline int PASCAL FAR CHXSock::HX__WSAFDIsSet( SOCKET s, fd_set FAR *fdSet )
  301. {
  302. assert( m_hLib && _hxWSAFDIsSet );
  303. return( _hxWSAFDIsSet( s, fdSet ) );
  304. }
  305. #undef _INLINE_CHXSOCK_
  306. #endif // #if defined( _INLINE_CHXSOCK_ )
  307. #endif // if !defined( _SOCK_INL_ )