X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=samtools.git;a=blobdiff_plain;f=knetfile.h;h=9021b937ac211c1459ef1afec3c20b49ce6007a1;hp=bf45f3df809b8f3ebd54b17c711dd188ab3dbb36;hb=4a17fa7e1f91b2fe04ad334a63fc2b0d5e859d8a;hpb=b27e00385f41769d03a8cca4dbd71275fc9fa906;ds=sidebyside diff --git a/knetfile.h b/knetfile.h index bf45f3d..9021b93 100644 --- a/knetfile.h +++ b/knetfile.h @@ -4,6 +4,17 @@ #include #include +#ifndef _WIN32 +#define netread(fd, ptr, len) read(fd, ptr, len) +#define netwrite(fd, ptr, len) write(fd, ptr, len) +#define netclose(fd) close(fd) +#else +#include +#define netread(fd, ptr, len) recv(fd, ptr, len, 0) +#define netwrite(fd, ptr, len) send(fd, ptr, len, 0) +#define netclose(fd) closesocket(fd) +#endif + // FIXME: currently I/O is unbuffered #define KNF_TYPE_LOCAL 1 @@ -13,12 +24,15 @@ typedef struct knetFile_s { int type, fd; int64_t offset; - char *host; + char *host, *port; // the following are for FTP only int ctrl_fd, pasv_ip[4], pasv_port, max_response, no_reconnect, is_ready; char *response, *retr; int64_t seek_offset; // for lazy seek + + // the following are for HTTP only + char *path, *http_host; } knetFile; #define knet_tell(fp) ((fp)->offset) @@ -28,6 +42,11 @@ typedef struct knetFile_s { extern "C" { #endif +#ifdef _WIN32 + int knet_win32_init(); + void knet_win32_destroy(); +#endif + knetFile *knet_open(const char *fn, const char *mode); /*