/*
 * Automatically generated by jrpcgen 1.0.7 on 29.11.2012
 * jrpcgen is part of the "Remote Tea.Net" ONC/RPC package for C#
 * See http://remotetea.sourceforge.net for details
 */
namespace NFSLibrary.Protocols.V4.RPC{
using org.acplt.oncrpc;

using System.Net;

/**
 * The class <code>NFSv4ProtocolClient</code> implements the client stub proxy
 * for the NFS4_PROGRAM remote program. It provides method stubs
 * which, when called, in turn call the appropriate remote method (procedure).
 */
public class NFSv4ProtocolClient : OncRpcClientStub {

    /**
     * Constructs a <code>NFSv4ProtocolClient</code> client stub proxy object
     * from which the NFS4_PROGRAM remote program can be accessed.
     * @param host Internet address of host where to contact the remote program.
     * @param protocol {@link org.acplt.oncrpc.OncRpcProtocols Protocol} to be
     *   used for ONC/RPC calls.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public NFSv4ProtocolClient(IPAddress host, int protocol) :         base(host, NFSv4Protocol.NFS4_PROGRAM, 4, 0, protocol,true) {
    }

    public NFSv4ProtocolClient(IPAddress host, int protocol, bool useSecurePort)
        : base(host, NFSv4Protocol.NFS4_PROGRAM, 4, 0, protocol, useSecurePort)
    {
    }

    /**
     * Constructs a <code>NFSv4ProtocolClient</code> client stub proxy object
     * from which the NFS4_PROGRAM remote program can be accessed.
     * @param host Internet address of host where to contact the remote program.
     * @param port Port number at host where the remote program can be reached.
     * @param protocol {@link org.acplt.oncrpc.OncRpcProtocols Protocol} to be
     *   used for ONC/RPC calls.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public NFSv4ProtocolClient(IPAddress host, int port, int protocol) :        base(host, NFSv4Protocol.NFS4_PROGRAM, 4, port, protocol,true) {
    }

    /**
     * Constructs a <code>NFSv4ProtocolClient</code> client stub proxy object
     * from which the NFS4_PROGRAM remote program can be accessed.
     * @param client ONC/RPC client connection object implementing a particular
     *   protocol.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public NFSv4ProtocolClient(OncRpcClient client) : base(client) {
    }

    /**
     * Constructs a <code>NFSv4ProtocolClient</code> client stub proxy object
     * from which the NFS4_PROGRAM remote program can be accessed.
     * @param host Internet address of host where to contact the remote program.
     * @param program Remote program number.
     * @param version Remote program version number.
     * @param protocol {@link org.acplt.oncrpc.OncRpcProtocols Protocol} to be
     *   used for ONC/RPC calls.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public NFSv4ProtocolClient(IPAddress host, int program, int version, int protocol) :        base(host, program, version, 0, protocol,true) {
    }

    /**
     * Constructs a <code>NFSv4ProtocolClient</code> client stub proxy object
     * from which the NFS4_PROGRAM remote program can be accessed.
     * @param host Internet address of host where to contact the remote program.
     * @param program Remote program number.
     * @param version Remote program version number.
     * @param port Port number at host where the remote program can be reached.
     * @param protocol {@link org.acplt.oncrpc.OncRpcProtocols Protocol} to be
     *   used for ONC/RPC calls.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public NFSv4ProtocolClient(IPAddress host, int program, int version, int port, int protocol) :        base(host, program, version, port, protocol,true) {
    }

    /**
     * Call remote procedure NFSPROC4_NULL_4.
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public void NFSPROC4_NULL_4() {
        XdrVoid args_ = XdrVoid.XDR_VOID;
        XdrVoid result_ = XdrVoid.XDR_VOID;
        client.call(NFSv4Protocol.NFSPROC4_NULL_4, NFSv4Protocol.NFS_V4, args_, result_);
    }

    /**
     * Call remote procedure NFSPROC4_COMPOUND_4.
     * @param arg1 parameter (of type COMPOUND4args) to the remote procedure call.
     * @return Result from remote procedure call (of type COMPOUND4res).
     * @throws OncRpcException if an ONC/RPC error occurs.
     * @throws IOException if an I/O error occurs.
     */
    public COMPOUND4res NFSPROC4_COMPOUND_4(COMPOUND4args arg1) {
        COMPOUND4res result_ = new COMPOUND4res();
        client.call(NFSv4Protocol.NFSPROC4_COMPOUND_4, NFSv4Protocol.NFS_V4, arg1, result_);
        return result_;
    }

}
} // End of NFSv4ProtocolClient.cs
