2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.sal.connector.api;
10 import java.util.concurrent.Future;
16 * @param <C> Routing Context Identifier
17 * @param <R> Route Type
19 * @param <D> Data Type
21 public interface RpcRouter<C,T,R,D> {
25 Future<RpcReply<D>> sendRpc(RpcRequest<C, T, R, D> input);
32 * @param <C> Routing Context Identifier
33 * @param <R> Route Type
35 * @param <D> Data Type
37 interface RpcRequest<C,T,R,D> {
39 RouteIdentifier<C,T,R> getRoutingInformation();
43 interface RouteIdentifier<C,T,R> {
45 C getContext(); // defines a routing table (e.g. NodeContext)
46 T getType(); // rpc type
47 R getRoute(); // e.g. (node identity)
50 interface RpcReply<D> {