--- libaitio/inc/aitio.h 2011/10/31 15:05:13 1.12.2.2 +++ libaitio/inc/aitio.h 2011/11/02 16:10:24 1.12.2.4 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.12.2.2 2011/10/31 15:05:13 misho Exp $ +* $Id: aitio.h,v 1.12.2.4 2011/11/02 16:10:24 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -880,6 +880,27 @@ pid_t ioForkPTY(int *ptyfd, char * __restrict name, in * return: -1 error or 0 ok */ inline int ioCreatePIDFile(const char *csName, int ifExists); + +/* + * ioSendFile() AITNET sendfile() userland implementation, not dependant from OS + * @s = socket + * @csFile = file for send + * @sendLen = bytes to send, if 0 send all data + * @offset = start file offset + * @sndbuf = SO_SNDBUF value, if 0 use default + * return: 0 error, >0 ok, sended bytes + */ +size_t ioSendFile(int s, const char *csFile, size_t sendLen, off_t offset, int sndbuf); +/* + * ioRecvFile() Receive file from socket, fastest (zero-copy) way + * @s = socket + * @csFile = file for receive + * @recvLen = receive bytes + * @over = overwrite file if exists with mode like 0644 + * @rcvbuf = SO_RCVBUF value, if 0 use default + * return: 0 error, >0 ok, received bytes + */ +size_t ioRecvFile(int s, const char *csFile, size_t recvLen, int over, int rcvbuf); #endif