sock.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:13k
源码类别:

Symbian

开发平台:

Visual C++

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