X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_disk_lib.h;h=91cc1587a58387a39fa4eef11c892b7190a26238;hb=db3b3123f9d157c71d8b3d9e3b1d5966fe471599;hp=ae9cdbbe95893af2f931bb4dd24d26508dd32941;hpb=f1be08d58422d8b9dc24eb7bce2b6ad050e093fd;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_disk_lib.h b/src/include/gnunet_disk_lib.h index ae9cdbbe9..91cc1587a 100644 --- a/src/include/gnunet_disk_lib.h +++ b/src/include/gnunet_disk_lib.h @@ -36,10 +36,20 @@ */ struct GNUNET_DISK_PipeHandle; - +/** + * Type of a handle. + */ enum GNUNET_FILE_Type { - GNUNET_DISK_FILE, GNUNET_PIPE + /** + * Handle represents a file. + */ + GNUNET_DISK_HANLDE_TYPE_FILE, + + /** + * Handle represents a pipe. + */ + GNUNET_DISK_HANLDE_TYPE_PIPE }; /** @@ -218,24 +228,25 @@ enum GNUNET_DISK_AccessPermissions /** - * Constants for specifying how to seek. + * Constants for specifying how to seek. Do not change values or order, + * some of the code depends on the specific numeric values! */ enum GNUNET_DISK_Seek { /** * Seek an absolute position (from the start of the file). */ - GNUNET_DISK_SEEK_SET, + GNUNET_DISK_SEEK_SET = 0, /** * Seek a relative position (from the current offset). */ - GNUNET_DISK_SEEK_CUR, + GNUNET_DISK_SEEK_CUR = 1, /** * Seek an absolute position from the end of the file. */ - GNUNET_DISK_SEEK_END + GNUNET_DISK_SEEK_END = 2 }; @@ -356,15 +367,13 @@ GNUNET_DISK_mktemp (const char *t); /** - * Create an (empty) temporary file on disk. If the given name is not - * an absolute path, the current 'TMPDIR' will be prepended. In any case, - * 6 random characters will be appended to the name to create a unique - * filename. + * Create an (empty) temporary directory on disk. If the given name is not an + * absolute path, the current 'TMPDIR' will be prepended. In any case, 6 + * random characters will be appended to the name to create a unique name. * * @param t component to use for the name; * does NOT contain "XXXXXX" or "/tmp/". - * @return NULL on error, otherwise name of fresh - * file on disk in directory for temporary files + * @return NULL on error, otherwise name of freshly created directory */ char * GNUNET_DISK_mkdtemp (const char *t); @@ -425,6 +434,7 @@ GNUNET_DISK_pipe (int blocking_read, int blocking_write, int inherit_read, int i struct GNUNET_DISK_PipeHandle * GNUNET_DISK_pipe_from_fd (int blocking_read, int blocking_write, int fd[2]); + /** * Closes an interprocess channel * @param p pipe @@ -433,6 +443,7 @@ GNUNET_DISK_pipe_from_fd (int blocking_read, int blocking_write, int fd[2]); int GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p); + /** * Closes one half of an interprocess channel * @@ -465,6 +476,17 @@ const struct GNUNET_DISK_FileHandle * GNUNET_DISK_pipe_handle (const struct GNUNET_DISK_PipeHandle *p, enum GNUNET_DISK_PipeEnd n); + +/** + * Get a handle from a native FD. + * + * @param fd native file descriptor + * @return file handle corresponding to the descriptor + */ +struct GNUNET_DISK_FileHandle * +GNUNET_DISK_get_handle_from_native (FILE *fd); + + /** * Read the contents of a binary file into a buffer. * @param h handle to an open file @@ -476,6 +498,7 @@ ssize_t GNUNET_DISK_file_read (const struct GNUNET_DISK_FileHandle *h, void *result, size_t len); + /** * Read the contents of a binary file into a buffer. * Guarantees not to block (returns GNUNET_SYSERR and sets errno to EAGAIN @@ -488,7 +511,8 @@ GNUNET_DISK_file_read (const struct GNUNET_DISK_FileHandle *h, void *result, */ ssize_t GNUNET_DISK_file_read_non_blocking (const struct GNUNET_DISK_FileHandle * h, - void *result, size_t len); + void *result, size_t len); + /** * Read the contents of a binary file into a buffer. @@ -656,11 +680,11 @@ GNUNET_DISK_directory_test (const char *fil); * Remove all files in a directory (rm -rf). Call with * caution. * - * @param fileName the file to remove + * @param filename the file to remove * @return GNUNET_OK on success, GNUNET_SYSERR on error */ int -GNUNET_DISK_directory_remove (const char *fileName); +GNUNET_DISK_directory_remove (const char *filename); /**