#ifndef vio_violite_h_
#define vio_violite_h_
#include "my_net.h"
#ifdef HAVE_VIO
#include <Vio.h>
#else
#ifdef __cplusplus
extern "C" {
#endif
#ifndef Vio_defined
#define Vio_defined
struct st_vio;
typedef struct st_vio Vio;
#endif
enum enum_vio_type { VIO_CLOSED, VIO_TYPE_TCPIP, VIO_TYPE_SOCKET,
VIO_TYPE_NAMEDPIPE, VIO_TYPE_SSL};
Vio* vio_new(my_socket sd,
enum enum_vio_type type,
my_bool localhost);
#ifdef __WIN__
Vio* vio_new_win32pipe(HANDLE hPipe);
#endif
void vio_delete(Vio* vio);
int vio_read( Vio* vio,
gptr buf, int size);
int vio_write( Vio* vio,
const gptr buf,
int size);
int vio_blocking( Vio* vio,
my_bool onoff);
my_bool vio_is_blocking( Vio* vio);
int vio_fastsend( Vio* vio);
int vio_keepalive( Vio* vio,
my_bool onoff);
my_bool vio_should_retry( Vio* vio);
int vio_close( Vio* vio);
const char* vio_description( Vio* vio);
enum enum_vio_type vio_type(Vio* vio);
int vio_errno(Vio *vio);
my_socket vio_fd(Vio *vio);
my_bool vio_peer_addr(Vio * vio, char *buf);
void vio_in_addr(Vio *vio, struct in_addr *in);
my_bool vio_poll_read(Vio *vio,uint timeout);
#ifdef __cplusplus
}
#endif
#endif
#endif