All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opendaylight.ovsdb.lib.message.OvsdbRPC Maven / Gradle / Ivy

/*
 * 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 get_schema(List db_names);
    ListenableFuture get_schema(List dbNames);

    ListenableFuture> echo();

    ListenableFuture monitor(Params equest);

    ListenableFuture> list_dbs();

    ListenableFuture> transact(TransactBuilder transact);

    ListenableFuture cancel(String id);

    ListenableFuture monitor_cancel(Params jsonValue);

    ListenableFuture lock(List id);

    ListenableFuture steal(List id);

    ListenableFuture unlock(List id);

    boolean registerCallback(Callback callback);


    interface Callback {
        void update(Object context, UpdateNotification upadateNotification);

        void locked(Object context, List ids);

        void stolen(Object context, List ids);

        // ECHO is handled by JsonRPCEndpoint directly.
        // We can add Echo request here if there is a need for clients to handle it.
    }
}