/*
* Copyright (c) 2013, 2015 EBay Software Foundation and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.ovsdb.lib.message;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.List;
import org.opendaylight.ovsdb.lib.jsonrpc.Params;
public interface OvsdbRPC {
String REGISTER_CALLBACK_METHOD = "registerCallback";
//public ListenableFuture<DatabaseSchema> get_schema(List<String> db_names);
ListenableFuture<JsonNode> get_schema(List<String> dbNames);
ListenableFuture<List<String>> echo();
ListenableFuture<JsonNode> monitor(Params equest);
ListenableFuture<List<String>> list_dbs();
ListenableFuture<List<JsonNode>> transact(TransactBuilder transact);
ListenableFuture<Response> cancel(String id);
ListenableFuture<JsonNode> monitor_cancel(Params jsonValue);
ListenableFuture<Object> lock(List<String> id);
ListenableFuture<Object> steal(List<String> id);
ListenableFuture<Object> unlock(List<String> id);
boolean registerCallback(Callback callback);
interface Callback {
void update(Object context, UpdateNotification upadateNotification);
void locked(Object context, List<String> ids);
void stolen(Object context, List<String> ids);
// ECHO is handled by JsonRPCEndpoint directly.
// We can add Echo request here if there is a need for clients to handle it.
}
}