X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Ffastbuf.h;h=abcf7118499f0a76a66b5ab1b4a0aa3e11f03e1f;hb=9ff2d1d3d98e39cfe57e38519427a7754d73cb6c;hp=922798ff183515a3d102191c6e614569373088e1;hpb=26682bf24cf0899f149b49871c4ae6cf3fd1c740;p=libucw.git diff --git a/lib/fastbuf.h b/lib/fastbuf.h index 922798ff..abcf7118 100644 --- a/lib/fastbuf.h +++ b/lib/fastbuf.h @@ -88,6 +88,9 @@ struct fastbuf *bfdopen(int fd, uns buflen); struct fastbuf *bfdopen_shared(int fd, uns buflen); void bfilesync(struct fastbuf *b); +#define TEMP_FILE_NAME_LEN 256 +void temp_file_name(byte *name); + /* FastIO on in-memory streams */ struct fastbuf *fbmem_create(unsigned blocksize); /* Create stream and return its writing fastbuf */ @@ -97,6 +100,14 @@ struct fastbuf *fbmem_clone_read(struct fastbuf *); /* Create reading fastbuf */ struct fastbuf *bopen_mm(byte *name, uns mode); +/* FastIO on files opened with O_DIRECT (see fb-direct.c for description) */ + +struct asio_queue; +struct fastbuf *fbdir_open(byte *name, uns mode, struct asio_queue *io_queue); +struct fastbuf *fbdir_open_try(byte *name, uns mode, struct asio_queue *io_queue); +struct fastbuf *fbdir_open_fd(int fd, struct asio_queue *io_queue); +struct fastbuf *fbdir_open_tmp(struct asio_queue *io_queue); + /* FastI on file descriptors with limit */ struct fastbuf *bopen_limited_fd(int fd, uns bufsize, uns limit);