+
+ /**
+ * ovsdb <a href="http://tools.ietf.org/html/draft-pfaff-ovsdb-proto-04#section-4.1.5">monitor</a> operation.
+ * @param monitorRequest represents what needs to be monitored including a client specified monitor handle. This
+ * handle is used to later cancel ({@link #cancelMonitor(MonitorHandle)}) the monitor.
+ * @param callback receives the monitor response
+ */
+ public void monitor(MonitorRequest monitorRequest, MonitorCallBack callback);
+
+ /**
+ * Cancels an existing monitor method.
+ * @param handler Handle identifying a specific monitor request that is being cancelled.
+ * @throws java.lang.IllegalStateException if there is no outstanding monitor request for this handle
+ */
+ public void cancelMonitor(MonitorHandle handler);
+
+ /**
+ * ovsdb <a href="http://tools.ietf.org/html/draft-pfaff-ovsdb-proto-04#section-4.1.8">lock</a> operation.
+ * @param lockId a client specified id for the lock; this can be used for unlocking ({@link #unLock(String)})
+ * @param lockedCallBack Callback to nofify when the lock is acquired
+ * @param stolenCallback Callback to notify when an acquired lock is stolen by another client
+ */
+ public void lock(String lockId, LockAquisitionCallback lockedCallBack, LockStolenCallback stolenCallback);
+
+ /**
+ * ovsdb steal operation, see {@link #lock(String, LockAquisitionCallback, LockStolenCallback)}
+ * @param lockId
+ * @return
+ */
+ public ListenableFuture<Boolean> steal(String lockId);
+
+ /**
+ * ovsdb unlock operaiton, see {@link #unLock(String)}
+ * @param lockId
+ * @return
+ */
+ public ListenableFuture<Boolean> unLock(String lockId);
+
+ /**
+ * Starts the echo service. The {@code callbackFilters} can be used to get notified on the absence of echo
+ * notifications from the remote device and control the frequency of such notifications.
+ * @param callbackFilters callbacks for notifying the client of missing echo calls from remote.
+ */
+ public void startEchoService(EchoServiceCallbackFilters callbackFilters);
+
+ /**
+ * Stops the echo service, i.e echo requests from the remote would not be acknowledged after this call.
+ */
+ public void stopEchoService();
+