#ifndef OVSDB_JSONRPC_SERVER_H
#define OVSDB_JSONRPC_SERVER_H 1
+#include <stdbool.h>
+
struct ovsdb;
struct shash;
struct ovsdb_jsonrpc_server *ovsdb_jsonrpc_server_create(struct ovsdb *);
void ovsdb_jsonrpc_server_destroy(struct ovsdb_jsonrpc_server *);
+/* Options for a remote. */
+struct ovsdb_jsonrpc_options {
+ int max_backoff; /* Maximum reconnection backoff, in msec. */
+ int probe_interval; /* Max idle time before probing, in msec. */
+};
+struct ovsdb_jsonrpc_options *ovsdb_jsonrpc_default_options(void);
+
void ovsdb_jsonrpc_server_set_remotes(struct ovsdb_jsonrpc_server *,
const struct shash *);
+/* Status of a single remote connection. */
+struct ovsdb_jsonrpc_remote_status {
+ const char *state;
+ int last_error;
+ unsigned int sec_since_connect;
+ unsigned int sec_since_disconnect;
+ bool is_connected;
+};
+void ovsdb_jsonrpc_server_get_remote_status(
+ const struct ovsdb_jsonrpc_server *,
+ struct shash * /* of 'struct ovsdb_jsonrpc_remote_status' */ );
+
+void ovsdb_jsonrpc_server_reconnect(struct ovsdb_jsonrpc_server *);
+
void ovsdb_jsonrpc_server_run(struct ovsdb_jsonrpc_server *);
void ovsdb_jsonrpc_server_wait(struct ovsdb_jsonrpc_server *);