/* * Copyright (c) 2014 Cisco Systems, Inc. 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.controller.sal.connector.api; import java.util.concurrent.Future; /** * * @author ttkacik * * @param Routing Context Identifier * @param Route Type * @param Rpc Type * @param Data Type */ public interface RpcRouter { Future> sendRpc(RpcRequest input); /** * * @author * * @param Routing Context Identifier * @param Route Type * @param Rpc Type * @param Data Type */ public interface RpcRequest { RouteIdentifier getRoutingInformation(); D getPayload(); } public interface RouteIdentifier { C getContext(); // defines a routing table (e.g. NodeContext) T getType(); // rpc type R getRoute(); // e.g. (node identity) } public interface RpcReply { D getPayload(); } }