From 39dedac8a330df65055fb400dfbbd241065a7123 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 25 Aug 2015 06:19:12 +0200 Subject: m + begin on libmds_connection_t MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/libmdsclient/proto-util.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/libmdsclient/proto-util.h') diff --git a/src/libmdsclient/proto-util.h b/src/libmdsclient/proto-util.h index 7bb5615..f381c57 100644 --- a/src/libmdsclient/proto-util.h +++ b/src/libmdsclient/proto-util.h @@ -110,6 +110,7 @@ typedef enum libmds_cherrypick_optimisation * @throws ENOMEM Out of memory, Possibly, the process hit the RLIMIT_AS or * RLIMIT_DATA limit described in getrlimit(2). */ +__attribute__((sentinel)) int libmds_headers_cherrypick(char** restrict headers, size_t header_count, size_t* restrict found, libmds_cherrypick_optimisation_t optimisation, ...); @@ -131,6 +132,7 @@ int libmds_headers_cherrypick(char** restrict headers, size_t header_count, size * more headers in the list, it should be terminated with a `NULL`. * @return The number of found headers of those that were requested */ +__attribute__((sentinel)) size_t libmds_headers_cherrypick_linear_unsorted(char** restrict headers, size_t header_count, ...); #define libmds_headers_cherrypick_linear_unsorted libmds_headers_cherrypick_linear_unsorted @@ -154,6 +156,7 @@ size_t libmds_headers_cherrypick_linear_unsorted(char** restrict headers, size_t * more headers in the list, it should be terminated with a `NULL`. * @return The number of found headers of those that were requested */ +__attribute__((sentinel)) size_t libmds_headers_cherrypick_linear_sorted(char** restrict headers, size_t header_count, ...); #define libmds_headers_cherrypick_linear_sorted libmds_headers_cherrypick_linear_sorted @@ -175,6 +178,7 @@ size_t libmds_headers_cherrypick_linear_sorted(char** restrict headers, size_t h * more headers in the list, it should be terminated with a `NULL`. * @return The number of found headers of those that were requested */ +__attribute__((sentinel)) size_t libmds_headers_cherrypick_binary_unsorted(char** restrict headers, size_t header_count, ...); #define libmds_headers_cherrypick_binary_unsorted libmds_headers_cherrypick_binary_unsorted @@ -197,6 +201,7 @@ size_t libmds_headers_cherrypick_binary_unsorted(char** restrict headers, size_t * more headers in the list, it should be terminated with a `NULL`. * @return The number of found headers of those that were requested */ +__attribute__((sentinel)) size_t libmds_headers_cherrypick_binary_sorted(char** restrict headers, size_t header_count, ...); #define libmds_headers_cherrypick_binary_unsorted libmds_headers_cherrypick_binary_unsorted @@ -365,9 +370,9 @@ void libmds_headers_sort(char** restrict headers, size_t header_count); * @throws ENOMEM Out of memory, Possibly, the process hit the RLIMIT_AS or * RLIMIT_DATA limit described in getrlimit(2). */ +__attribute__((nonnull(1, 2, 3), sentinel)) int libmds_compose(char** restrict buffer, size_t* restrict buffer_size, size_t* restrict length, - const char* restrict payload, const size_t* restrict payload_length, - ...) __attribute__((nonnull(1, 2, 3))); + const char* restrict payload, const size_t* restrict payload_length, ...); /** * Compose a message @@ -411,9 +416,9 @@ int libmds_compose(char** restrict buffer, size_t* restrict buffer_size, size_t* * @throws ENOMEM Out of memory, Possibly, the process hit the RLIMIT_AS or * RLIMIT_DATA limit described in getrlimit(2). */ +__attribute__((nonnull(1, 2, 3))) int libmds_compose_v(char** restrict buffer, size_t* restrict buffer_size, size_t* restrict length, - const char* restrict payload, const size_t* restrict payload_length, - va_list args) __attribute__((nonnull(1, 2, 3))); + const char* restrict payload, const size_t* restrict payload_length, va_list args); /** * Increase the message ID counter @@ -436,8 +441,9 @@ int libmds_compose_v(char** restrict buffer, size_t* restrict buffer_size, size_ * there are no free message ID:s. * @throws Any error that `test` may throw. */ +__attribute__((nonnull(1))) int libmds_next_message_id(uint32_t* restrict message_id, int (*test)(uint32_t message_id, void* data), - void* data) __attribute__((nonnull(1))); + void* data) ; #endif -- cgit v1.2.3-70-g09d2