NdbTCP.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef NDB_TCP_H
  14. #define NDB_TCP_H
  15. #include <ndb_global.h>
  16. #include <ndb_net.h>
  17. #if defined NDB_OSE || defined NDB_SOFTOSE
  18. /**
  19.  * Include files needed
  20.  */
  21. #include "inet.h"
  22. #include <netdb.h>
  23. #define NDB_NONBLOCK FNDELAY
  24. #define NDB_SOCKET_TYPE int
  25. #define NDB_INVALID_SOCKET -1
  26. #define _NDB_CLOSE_SOCKET(x) close(x)
  27. /**
  28.  * socklen_t not defined in the header files of OSE 
  29.  */
  30. typedef int socklen_t;
  31. #define InetErrno (* inet_errno())
  32. #elif defined NDB_WIN32
  33. /**
  34.  * Include files needed
  35.  */
  36. #include <winsock2.h>
  37. #include <ws2tcpip.h>
  38. #define InetErrno WSAGetLastError()
  39. #define EWOULDBLOCK WSAEWOULDBLOCK
  40. #define NDB_SOCKET_TYPE SOCKET
  41. #define NDB_INVALID_SOCKET INVALID_SOCKET
  42. #define _NDB_CLOSE_SOCKET(x) closesocket(x)
  43. #else
  44. /**
  45.  * Include files needed
  46.  */
  47. #include <netdb.h>
  48. #define NDB_NONBLOCK O_NONBLOCK
  49. #define NDB_SOCKET_TYPE int
  50. #define NDB_INVALID_SOCKET -1
  51. #define _NDB_CLOSE_SOCKET(x) ::close(x)
  52. #define InetErrno errno
  53. #endif
  54. #define NDB_SOCKLEN_T SOCKET_SIZE_TYPE
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58. /**
  59.  * Convert host name or ip address to in_addr
  60.  *
  61.  * Returns  0 on success
  62.  *         -1 on failure
  63.  *
  64.  * Implemented as:
  65.  *   gethostbyname
  66.  *   if not success
  67.  *      inet_addr
  68.  */
  69. int Ndb_getInAddr(struct in_addr * dst, const char *address);
  70. #ifdef DBUG_OFF
  71. #define NDB_CLOSE_SOCKET(fd) _NDB_CLOSE_SOCKET(fd)
  72. #else
  73. int NDB_CLOSE_SOCKET(int fd);
  74. #endif
  75. #ifdef __cplusplus
  76. }
  77. #endif
  78. #endif