diff options
author | Ben Pfaff <blp@nicira.com> | 2009-12-02 10:50:18 -0800 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2009-12-02 11:19:03 -0800 |
commit | dcbb691b0046f0d4421afbe8901d85c186929f7e (patch) | |
tree | 8206b857cc8b9e038559f8b8fe4754a4f768eb30 /lib/jsonrpc.h | |
parent | 6e30ca6372f83f6b4ba9ee7bf7ac464c79708ce1 (diff) |
jsonrpc: New type "jsonrpc_session", which automatically reconnects.
Diffstat (limited to 'lib/jsonrpc.h')
-rw-r--r-- | lib/jsonrpc.h | 19 |
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 */ |