X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_bio_lib.h;h=47d8d5e1ecf3bee877d44387d226067ca52ed9b4;hb=a6fb0db57f2a70a05bdb6ef7ccf69a044268dee6;hp=02b04570eabc226ca9df15be6dcca17ccbc962a6;hpb=da7cc55488f90b3294dbb7aa186184e6e8501d7e;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_bio_lib.h b/src/include/gnunet_bio_lib.h index 02b04570e..47d8d5e1e 100644 --- a/src/include/gnunet_bio_lib.h +++ b/src/include/gnunet_bio_lib.h @@ -49,7 +49,8 @@ struct GNUNET_BIO_ReadHandle; * @param fn file name to be opened * @return IO handle on success, NULL on error */ -struct GNUNET_BIO_ReadHandle *GNUNET_BIO_read_open (const char *fn); +struct GNUNET_BIO_ReadHandle * +GNUNET_BIO_read_open (const char *fn); /** @@ -60,8 +61,8 @@ struct GNUNET_BIO_ReadHandle *GNUNET_BIO_read_open (const char *fn); * @param emsg set to the error message * @return GNUNET_OK on success, GNUNET_SYSERR otherwise */ -int GNUNET_BIO_read_close (struct GNUNET_BIO_ReadHandle *h, - char **emsg); +int +GNUNET_BIO_read_close (struct GNUNET_BIO_ReadHandle *h, char **emsg); /** @@ -71,12 +72,26 @@ int GNUNET_BIO_read_close (struct GNUNET_BIO_ReadHandle *h, * @param what describes what is being read (for error message creation) * @param result the buffer to write the result to * @param len the number of bytes to read - * @return len on success, GNUNET_SYSERR on failure + * @return GNUNET_OK on success, GNUNET_SYSERR on failure + */ +int +GNUNET_BIO_read (struct GNUNET_BIO_ReadHandle *h, const char *what, + void *result, size_t len); + + +/** + * Read the contents of a binary file into a buffer. + * + * @param h handle to an open file + * @param file name of the source file + * @param line line number in the source file + * @param result the buffer to write the result to + * @param len the number of bytes to read + * @return GNUNET_OK on success, GNUNET_SYSERR on failure */ -ssize_t GNUNET_BIO_read (struct GNUNET_BIO_ReadHandle *h, - const char *what, - void *result, - size_t len); +int +GNUNET_BIO_read_fn (struct GNUNET_BIO_ReadHandle *h, const char *file, int line, + void *result, size_t len); /** * Read 0-terminated string from a file. @@ -85,11 +100,12 @@ ssize_t GNUNET_BIO_read (struct GNUNET_BIO_ReadHandle *h, * @param what describes what is being read (for error message creation) * @param result the buffer to store a pointer to the (allocated) string to * (note that *result could be set to NULL as well) + * @param maxLen maximum allowed length for the string * @return GNUNET_OK on success, GNUNET_SYSERR on failure */ -int GNUNET_BIO_read_string (struct GNUNET_BIO_ReadHandle *h, - const char *what, - char **result); +int +GNUNET_BIO_read_string (struct GNUNET_BIO_ReadHandle *h, const char *what, + char **result, size_t maxLen); /** @@ -100,9 +116,9 @@ int GNUNET_BIO_read_string (struct GNUNET_BIO_ReadHandle *h, * @param result the buffer to store a pointer to the (allocated) metadata * @return GNUNET_OK on success, GNUNET_SYSERR on failure */ -int GNUNET_BIO_read_meta_data (struct GNUNET_BIO_ReadHandle *h, - const char *what, - struct GNUNET_CONTAINER_MetaData **result); +int +GNUNET_BIO_read_meta_data (struct GNUNET_BIO_ReadHandle *h, const char *what, + struct GNUNET_CONTAINER_MetaData **result); /** @@ -110,8 +126,8 @@ int GNUNET_BIO_read_meta_data (struct GNUNET_BIO_ReadHandle *h, * * @param h hande to open file * @param f address of float to read - */ -#define GNUNET_BIO_read_float(h, f) (sizeof(float) == GNUNET_BIO_read (h, __FILE__ "##__LINE__##", f, sizeof(float))) + */ +#define GNUNET_BIO_read_float(h, f) (GNUNET_BIO_read_fn (h, __FILE__, __LINE__, f, sizeof(float))) @@ -120,21 +136,22 @@ int GNUNET_BIO_read_meta_data (struct GNUNET_BIO_ReadHandle *h, * * @param h hande to open file * @param f address of double to read - */ -#define GNUNET_BIO_read_double(h, f) (sizeof(double) == GNUNET_BIO_read (h, __FILE__ "##__LINE__##", f, sizeof(double))) + */ +#define GNUNET_BIO_read_double(h, f) (GNUNET_BIO_read_fn (h, __FILE__, __LINE__, f, sizeof(double))) /** * Read an (u)int32_t. * * @param h hande to open file - * @param what describes what is being read (for error message creation) + * @param file name of the source file + * @param line line number in the code * @param i address of 32-bit integer to read * @return GNUNET_OK on success, GNUNET_SYSERR on error - */ -int GNUNET_BIO_read_int32__ (struct GNUNET_BIO_ReadHandle *h, - const char *what, - int32_t *i); + */ +int +GNUNET_BIO_read_int32__ (struct GNUNET_BIO_ReadHandle *h, const char *file, + int line, int32_t * i); /** @@ -142,21 +159,22 @@ int GNUNET_BIO_read_int32__ (struct GNUNET_BIO_ReadHandle *h, * * @param h hande to open file * @param i address of 32-bit integer to read - */ -#define GNUNET_BIO_read_int32(h, i) GNUNET_BIO_read_int32__ (h, __FILE__ "##__LINE__##", (int32_t*) i) + */ +#define GNUNET_BIO_read_int32(h, i) GNUNET_BIO_read_int32__ (h, __FILE__, __LINE__, (int32_t*) i) /** * Read an (u)int64_t. * * @param h hande to open file - * @param what describes what is being read (for error message creation) + * @param file name of the source file + * @param line line number in the code * @param i address of 64-bit integer to read * @return GNUNET_OK on success, GNUNET_SYSERR on error - */ -int GNUNET_BIO_read_int64__ (struct GNUNET_BIO_ReadHandle *h, - const char *what, - int64_t *i); + */ +int +GNUNET_BIO_read_int64__ (struct GNUNET_BIO_ReadHandle *h, const char *file, + int line, int64_t * i); /** @@ -164,21 +182,23 @@ int GNUNET_BIO_read_int64__ (struct GNUNET_BIO_ReadHandle *h, * * @param h hande to open file * @param i address of 64-bit integer to read - */ -#define GNUNET_BIO_read_int64(h, i) (sizeof(int64_t) == GNUNET_BIO_read (h, __FILE__ "##__LINE__##", (int64_t*) i, sizeof(int64_t))) + */ +#define GNUNET_BIO_read_int64(h, i) GNUNET_BIO_read_int64__ (h, __FILE__, __LINE__, (int64_t*) i) /** * Handle for buffered writing. */ struct GNUNET_BIO_WriteHandle; + /** * Open a file for writing. * * @param fn file name to be opened * @return IO handle on success, NULL on error */ -struct GNUNET_BIO_WriteHandle *GNUNET_BIO_write_open (const char *fn); +struct GNUNET_BIO_WriteHandle * +GNUNET_BIO_write_open (const char *fn); /** @@ -187,7 +207,8 @@ struct GNUNET_BIO_WriteHandle *GNUNET_BIO_write_open (const char *fn); * @param h file handle * @return GNUNET_OK on success, GNUNET_SYSERR otherwise */ -int GNUNET_BIO_write_close (struct GNUNET_BIO_WriteHandle *h); +int +GNUNET_BIO_write_close (struct GNUNET_BIO_WriteHandle *h); /** @@ -198,9 +219,9 @@ int GNUNET_BIO_write_close (struct GNUNET_BIO_WriteHandle *h); * @param n number of bytes to write * @return GNUNET_OK on success, GNUNET_SYSERR on error */ -ssize_t GNUNET_BIO_write (struct GNUNET_BIO_WriteHandle *h, - const void *buffer, - size_t n); +int +GNUNET_BIO_write (struct GNUNET_BIO_WriteHandle *h, const void *buffer, + size_t n); /** @@ -210,8 +231,8 @@ ssize_t GNUNET_BIO_write (struct GNUNET_BIO_WriteHandle *h, * @param s string to write (can be NULL) * @return GNUNET_OK on success, GNUNET_SYSERR on error */ -int GNUNET_BIO_write_string (struct GNUNET_BIO_WriteHandle *h, - const char *s); +int +GNUNET_BIO_write_string (struct GNUNET_BIO_WriteHandle *h, const char *s); @@ -223,8 +244,9 @@ int GNUNET_BIO_write_string (struct GNUNET_BIO_WriteHandle *h, * @param m metadata to write * @return GNUNET_OK on success, GNUNET_SYSERR on error */ -int GNUNET_BIO_write_meta_data (struct GNUNET_BIO_WriteHandle *h, - const struct GNUNET_CONTAINER_MetaData *m); +int +GNUNET_BIO_write_meta_data (struct GNUNET_BIO_WriteHandle *h, + const struct GNUNET_CONTAINER_MetaData *m); @@ -233,8 +255,8 @@ int GNUNET_BIO_write_meta_data (struct GNUNET_BIO_WriteHandle *h, * * @param h hande to open file * @param f float to write (must be a variable) - */ -#define GNUNET_BIO_write_float(h, f) (sizeof(float) == GNUNET_BIO_write (h, &f, sizeof(float))) + */ +#define GNUNET_BIO_write_float(h, f) GNUNET_BIO_write (h, &f, sizeof(float)) @@ -243,30 +265,30 @@ int GNUNET_BIO_write_meta_data (struct GNUNET_BIO_WriteHandle *h, * * @param h hande to open file * @param f double to write (must be a variable) - */ -#define GNUNET_BIO_write_float(h, f) (sizeof(double) == GNUNET_BIO_write (h, &f, sizeof(double))) + */ +#define GNUNET_BIO_write_double(h, f) GNUNET_BIO_write (h, &f, sizeof(double)) /** * Write an (u)int32_t. * * @param h hande to open file - * @param i address of 32-bit integer to write + * @param i 32-bit integer to write * @return GNUNET_OK on success, GNUNET_SYSERR on error - */ -int GNUNET_BIO_write_int32 (struct GNUNET_BIO_ReadHandle *h, - int32_t i); + */ +int +GNUNET_BIO_write_int32 (struct GNUNET_BIO_WriteHandle *h, int32_t i); /** * Write an (u)int64_t. * * @param h hande to open file - * @param i address of 64-bit integer to write + * @param i 64-bit integer to write * @return GNUNET_OK on success, GNUNET_SYSERR on error - */ -int GNUNET_BIO_write_int64 (struct GNUNET_BIO_ReadHandle *h, - int64_t i); + */ +int +GNUNET_BIO_write_int64 (struct GNUNET_BIO_WriteHandle *h, int64_t i); #if 0 /* keep Emacsens' auto-indent happy */