/*
 * Automatically generated by jrpcgen 1.1.6 on 21.02.24 22:11
 * jrpcgen is part of the "Remote Tea" ONC/RPC package for Java
 * See http://remotetea.sourceforge.net for details
 */
package tests.org.acplt.oncrpc.jrpcgen;
import org.acplt.oncrpc.*;
import java.io.IOException;

/**
 * The demo program shall give some examples on
 * type and procedure definitions for ONC/RPC programs.
 *
 * <p>A lot of variants are possible.
 */
public interface demo2_DEMO2_CltIF {

    /**
     * Usually there is no need to define
     * the null-procedure call, explicitely.
     */
    void NULL_1() throws OncRpcException, IOException;

    /**
     * Let's echo the passed string!
     *
     * @param The string to be echoed. 
     * @return The passed string.
     */
    String echo_1(String arg1) throws OncRpcException, IOException;

    /**
     * Call remote procedure checkfoo_1.
     * @param arg1 parameter (of type int) to the remote procedure call.
     * @return Result from remote procedure call (of type bool).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    boolean checkfoo_1(int arg1) throws OncRpcException, IOException;

    /**
     * Call remote procedure foo_1.
     * @return Result from remote procedure call (of type ENUMFOO2).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    int foo_1() throws OncRpcException, IOException;

    /**
     * Call remote procedure ll_1.
     * @param arg1 parameter (of type TREE2) to the remote procedure call.
     * @return Result from remote procedure call (of type INDIRECTIONS2).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    INDIRECTIONS2 ll_1(TREE2 arg1) throws OncRpcException, IOException;

    /**
     * Call remote procedure readSomeResult_1.
     * @return Result from remote procedure call (of type OPTIONALDATA2).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    OPTIONALDATA2 readSomeResult_1() throws OncRpcException, IOException;

    /**
     * Call remote procedure NULL_2.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    void NULL_2() throws OncRpcException, IOException;

    /**
     * Call remote procedure cat_2.
     * @param arg1 parameter (of type String) to the remote procedure call.
     * @param arg2 parameter (of type String) to the remote procedure call.
     * @return Result from remote procedure call (of type string).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    String cat_2(String arg1, String arg2) throws OncRpcException, IOException;

    /**
     * Concatenates the passed strings.
     *
     * @param one The beginning of the string to build
     * @param two The second part of the string to build
     * @param three The last part of the string to build
     * @return The string resulting from the concatenation of
     * the passed three strings {@code one}, {@code two} and
     * {@code three}.
     */
    String cat3_2(String one, String two, String three) throws OncRpcException, IOException;

    /**
     * Call remote procedure checkfoo_2.
     * @param foo parameter (of type int) to the remote procedure call.
     * @return Result from remote procedure call (of type string).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    String checkfoo_2(int foo) throws OncRpcException, IOException;

    /**
     * Call remote procedure llcat_2.
     * @param tree parameter (of type TREE2) to the remote procedure call.
     * @param parameters parameter (of type INDIRECTIONS2) to the remote procedure call.
     * @return Result from remote procedure call (of type OPTIONALDATA2).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    OPTIONALDATA2 llcat_2(TREE2 tree, INDIRECTIONS2 parameters) throws OncRpcException, IOException;

    /**
     * Call remote procedure test_2.
     * @param a parameter (of type String) to the remote procedure call.
     * @param b parameter (of type int) to the remote procedure call.
     * @param c parameter (of type int) to the remote procedure call.
     * @param d parameter (of type PredefinedTypeA) to the remote procedure call.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    void test_2(String a, int b, int c, PredefinedTypeA d) throws OncRpcException, IOException;


}
// End of demo2_DEMO2_CltIF.java
