ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro-Mysql/violite.h
(Generate patch)

Comparing Coro-Mysql/violite.h (file contents):
Revision 1.5 by root, Sun Apr 13 08:01:45 2014 UTC vs.
Revision 1.10 by root, Mon Mar 4 05:38:43 2019 UTC

30#endif /* __cplusplus */ 30#endif /* __cplusplus */
31 31
32#if MYSQL_VERSION_ID < 50100 32#if MYSQL_VERSION_ID < 50100
33typedef I8 *xgptr; 33typedef I8 *xgptr;
34typedef I8 *const cxgptr; 34typedef I8 *const cxgptr;
35typedef int xlen; 35typedef int xsize_t;
36typedef int xssize_t;
36#else 37#else
37typedef U8 *xgptr; 38typedef U8 *xgptr;
38typedef const U8 *cxgptr; 39typedef const U8 *cxgptr;
39typedef size_t xlen; 40typedef size_t xsize_t;
41typedef size_t xssize_t;
40#endif 42#endif
41 43
42enum enum_vio_type 44enum enum_vio_type
43{ 45{
44 VIO_CLOSED, VIO_TYPE_TCPIP, VIO_TYPE_SOCKET, VIO_TYPE_NAMEDPIPE, 46 VIO_CLOSED, VIO_TYPE_TCPIP, VIO_TYPE_SOCKET, VIO_TYPE_NAMEDPIPE,
58 HANDLE event_server_wrote, 60 HANDLE event_server_wrote,
59 HANDLE event_server_read, 61 HANDLE event_server_read,
60 HANDLE event_client_wrote, 62 HANDLE event_client_wrote,
61 HANDLE event_client_read, 63 HANDLE event_client_read,
62 HANDLE event_conn_closed); 64 HANDLE event_conn_closed);
63xlen vio_read_pipe(Vio *vio, xgptr buf, xlen size); 65xsize_t vio_read_pipe(Vio *vio, xgptr buf, xsize_t size);
64xlen vio_write_pipe(Vio *vio, xcgptr buf, xlen size); 66xsize_t vio_write_pipe(Vio *vio, xcgptr buf, xsize_t size);
65xlen vio_close_pipe(Vio * vio); 67xsize_t vio_close_pipe(Vio * vio);
66#else 68#else
67#define HANDLE void * 69#define HANDLE void *
68#endif /* __WIN__ */ 70#endif /* __WIN__ */
69 71
70void vio_delete(Vio* vio); 72void vio_delete(Vio* vio);
71int vio_close(Vio* vio); 73int vio_close(Vio* vio);
72void vio_reset(Vio* vio, enum enum_vio_type type, 74void vio_reset(Vio* vio, enum enum_vio_type type,
73 my_socket sd, HANDLE hPipe, uint flags); 75 my_socket sd, HANDLE hPipe, uint flags);
74xlen vio_read(Vio *vio, xgptr buf, xlen size); 76xsize_t vio_read(Vio *vio, xgptr buf, xsize_t size);
75xlen vio_read_buff(Vio *vio, xgptr buf, xlen size); 77xsize_t vio_read_buff(Vio *vio, xgptr buf, xsize_t size);
76xlen vio_write(Vio *vio, cxgptr buf, xlen size); 78xsize_t vio_write(Vio *vio, cxgptr buf, xsize_t size);
77int vio_blocking(Vio *vio, my_bool onoff, my_bool *old_mode); 79int vio_blocking(Vio *vio, my_bool onoff, my_bool *old_mode);
78my_bool vio_is_blocking(Vio *vio); 80my_bool vio_is_blocking(Vio *vio);
79/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible */ 81/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible */
80int vio_fastsend(Vio *vio); 82int vio_fastsend(Vio *vio);
81/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible */ 83/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible */
134 136
135typedef unsigned char uchar; 137typedef unsigned char uchar;
136 138
137/* HFTODO - hide this if we don't want client in embedded server */ 139/* HFTODO - hide this if we don't want client in embedded server */
138/* This structure is for every connection on both sides */ 140/* This structure is for every connection on both sides */
139#if defined(MARIADB_BASE_VERSION) && 0 141#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100010
140 142
141#define DESC_IS_PTR 1 143#define DESC_IS_PTR 1
142
143struct st_vio 144struct st_vio
144{ 145{
145 my_socket sd; /* my_socket - real or imaginary */ 146 my_socket sd; /* my_socket - real or imaginary */
146 void *m_psi; 147 void *m_psi;
147 my_bool localhost; /* Are we from localhost? */ 148 my_bool localhost; /* Are we from localhost? */
195 read buffer */ 196 read buffer */
196 char *read_end; /* end of unfetched data */ 197 char *read_end; /* end of unfetched data */
197 /* function pointers. They are similar for socket/SSL/whatever */ 198 /* function pointers. They are similar for socket/SSL/whatever */
198 void (*viodelete)(Vio*); 199 void (*viodelete)(Vio*);
199 int (*vioerrno)(Vio*); 200 int (*vioerrno)(Vio*);
200 xlen (*read)(Vio*, xgptr, xlen); 201 xssize_t (*read)(Vio*, xgptr, xsize_t);
201 xlen (*write)(Vio*, cxgptr, xlen); 202 xssize_t (*write)(Vio*, cxgptr, xsize_t);
202 int (*vioblocking)(Vio*, my_bool, my_bool *); 203 int (*vioblocking)(Vio*, my_bool, my_bool *);
203 my_bool (*is_blocking)(Vio*); 204 my_bool (*is_blocking)(Vio*);
204 int (*viokeepalive)(Vio*, my_bool); 205 int (*viokeepalive)(Vio*, my_bool);
205 int (*fastsend)(Vio*); 206 int (*fastsend)(Vio*);
206 my_bool (*peer_addr)(Vio*, char *, uint16*); 207 my_bool (*peer_addr)(Vio*, char *, uint16*);
226 char desc[30]; /* String description */ 227 char desc[30]; /* String description */
227 char *read_buffer; /* buffer for vio_read_buff */ 228 char *read_buffer; /* buffer for vio_read_buff */
228 char *read_pos; /* start of unfetched data in the 229 char *read_pos; /* start of unfetched data in the
229 read buffer */ 230 read buffer */
230 char *read_end; /* end of unfetched data */ 231 char *read_end; /* end of unfetched data */
232#if defined(MARIADB_BASE_VERSION)
233 struct mysql_async_context *async_context; /* For non-blocking API */
234 uint read_timeout, write_timeout;
235#endif
231 /* function pointers. They are similar for socket/SSL/whatever */ 236 /* function pointers. They are similar for socket/SSL/whatever */
232 void (*viodelete)(Vio*); 237 void (*viodelete)(Vio*);
233 int (*vioerrno)(Vio*); 238 int (*vioerrno)(Vio*);
234 size_t (*read)(Vio*, unsigned char *, size_t); 239 size_t (*read)(Vio*, unsigned char *, size_t);
235 size_t (*write)(Vio*, const unsigned char *, size_t); 240 size_t (*write)(Vio*, const unsigned char *, size_t);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines