Code

store.h: Make it such that HOST/SERVICE/METRIC don't share bits with ATTRIBUTE
[sysdb.git] / src / include / client / sock.h
index 39e7622f3b1959fd1fbb1de11301adc25a1b842b..638f8626660807a33776267f8116dbe38c8449c0 100644 (file)
 
 #include "core/object.h"
 #include "core/data.h"
-
 #include "frontend/proto.h"
-
 #include "utils/strbuf.h"
 
 #include <sys/socket.h>
 
+#include <stdbool.h>
 #include <stddef.h>
 
 #ifdef __cplusplus
@@ -83,6 +82,14 @@ sdb_client_connect(sdb_client_t *client, const char *username);
 int
 sdb_client_sockfd(sdb_client_t *client);
 
+/*
+ * sdb_client_shutdown:
+ * Shut down the client's send and/or receive operations.
+ * See shutdown(3) for details.
+ */
+int
+sdb_client_shutdown(sdb_client_t *client, int how);
+
 /*
  * sdb_client_close:
  * Close the client connection.
@@ -96,7 +103,7 @@ sdb_client_close(sdb_client_t *client);
  * connection.
  *
  * Returns:
- *  - 0 on success
+ *  - the number of bytes send
  *  - a negative value else.
  */
 ssize_t
@@ -121,6 +128,14 @@ ssize_t
 sdb_client_recv(sdb_client_t *client,
                uint32_t *code, sdb_strbuf_t *buf);
 
+/*
+ * sdb_client_eof:
+ * Returns true if end of file on the client connection was reached, that is,
+ * if the remote side closed the connection.
+ */
+bool
+sdb_client_eof(sdb_client_t *client);
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif