2 * Copyright (c) 2017 Pantheon Technologies s.r.o. 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
9 package org.opendaylight.mdsal.binding.javav2.api;
11 import com.google.common.annotations.Beta;
12 import org.opendaylight.mdsal.binding.javav2.spec.base.Action;
13 import org.opendaylight.mdsal.binding.javav2.spec.base.ListAction;
14 import org.opendaylight.mdsal.binding.javav2.spec.base.Rpc;
17 * Provides access to registered Remote Procedure Call (RPC) and Action service implementations.
18 * RPCs and Actions are defined in YANG models.
21 * RPC/Action implementations are registered using the {@link RpcActionProviderService}.
24 public interface RpcActionConsumerRegistry extends BindingService {
27 * Returns an implementation of a requested RPC service.
30 * The returned instance is not an actual implementation of the RPC service interface, but a
31 * proxy implementation of the interface that forwards to an actual implementation, if any.
33 * @param serviceInterface given service interface
34 * @param <T> interface type
35 * @return returns proxy for the requested RPC
37 <T extends Rpc> T getRpcService(Class<T> serviceInterface);
40 * Returns an implementation of a requested Action service.
43 * The returned instance is not an actual implementation of the Action service interface, but a
44 * proxy implementation of the interface that forwards to an actual implementation, if any.
46 * @param serviceInterface given service interface
47 * @param <T> interface type
48 * @return returns proxy for the requested Action
50 <T extends Action> T getActionService(Class<T> serviceInterface);
53 * Returns an implementation of a requested ListAction service.
56 * The returned instance is not an actual implementation of the ListAction service interface, but a
57 * proxy implementation of the interface that forwards to an actual implementation, if any.
59 * @param serviceInterface given service interface
60 * @param <T> interface type
61 * @return returns proxy for the requested ListAction
63 <T extends ListAction> T getListActionService(Class<T> serviceInterface);