aboutsummaryrefslogtreecommitdiff
path: root/lib/jsonrpc.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2009-12-02 10:50:18 -0800
committerBen Pfaff <blp@nicira.com>2009-12-02 11:19:03 -0800
commitdcbb691b0046f0d4421afbe8901d85c186929f7e (patch)
tree8206b857cc8b9e038559f8b8fe4754a4f768eb30 /lib/jsonrpc.h
parent6e30ca6372f83f6b4ba9ee7bf7ac464c79708ce1 (diff)
jsonrpc: New type "jsonrpc_session", which automatically reconnects.
Diffstat (limited to 'lib/jsonrpc.h')
-rw-r--r--lib/jsonrpc.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/jsonrpc.h b/lib/jsonrpc.h
index e6d11ac5..5d47ac5e 100644
--- a/lib/jsonrpc.h
+++ b/lib/jsonrpc.h
@@ -81,5 +81,24 @@ void jsonrpc_msg_destroy(struct jsonrpc_msg *);
char *jsonrpc_msg_from_json(struct json *, struct jsonrpc_msg **);
struct json *jsonrpc_msg_to_json(struct jsonrpc_msg *);
+
+/* A JSON-RPC session with reconnection. */
+
+struct jsonrpc_session *jsonrpc_session_open(const char *name);
+void jsonrpc_session_close(struct jsonrpc_session *);
+
+void jsonrpc_session_run(struct jsonrpc_session *);
+void jsonrpc_session_wait(struct jsonrpc_session *);
+
+size_t jsonrpc_session_get_backlog(const struct jsonrpc_session *);
+const char *jsonrpc_session_get_name(const struct jsonrpc_session *);
+
+int jsonrpc_session_send(struct jsonrpc_session *, struct jsonrpc_msg *);
+struct jsonrpc_msg *jsonrpc_session_recv(struct jsonrpc_session *);
+void jsonrpc_session_recv_wait(struct jsonrpc_session *);
+
+bool jsonrpc_session_is_connected(const struct jsonrpc_session *);
+unsigned int jsonrpc_session_get_seqno(const struct jsonrpc_session *);
+void jsonrpc_session_force_reconnect(struct jsonrpc_session *);
#endif /* jsonrpc.h */