import org.opendaylight.yangtools.yang.data.api.CompositeNode;
/**
- * {@link Provider}'s implementation of rpc.
- *
- * In order to expose the rpc to other components, the provider MUST register
- * concrete implementation of this interface
- *
+ * {@link Provider}'s implementation of an RPC.
+ *
+ * In order to expose an RPC to other components, the provider MUST register
+ * a concrete implementation of this interface.
+ *
* The registration could be done by :
* <ul>
* <li>returning an instance of implementation in the return value of
* arguments to the
* {@link ProviderSession#addRpcImplementation(QName, RpcImplementation)}
* </ul>
- *
+ *
* The simplified process of the invocation of rpc is following:
- *
+ *
* <ol>
* <li> {@link Consumer} invokes
* {@link ConsumerSession#rpc(QName, CompositeNode)}
* {@link RpcResult}
* <li> {@link Broker} returns the {@link RpcResult} to {@link Consumer}
* </ol>
- *
- *
+ *
+ *
*/
public interface RpcImplementation extends Provider.ProviderFunctionality {
/**
* A set of rpc types supported by implementation.
- *
+ *
* The set of rpc {@link QName}s which are supported by this implementation.
* This set is used, when {@link Provider} is registered to the SAL, to
* register and expose the implementation of the returned rpcs.
- *
+ *
* @return Set of QNames identifying supported RPCs
*/
Set<QName> getSupportedRpcs();
/**
* Invokes a implementation of specified rpc.
- *
- *
+ *
+ *
* @param rpc
* Rpc to be invoked
* @param input
* Input data for rpc.
- *
+ *
* @throws IllegalArgumentException
* <ul>
* <li>If rpc is null.