/*
 * MATLAB Compiler: 4.18 (R2012b)
 * Date: Sat Apr 25 10:48:32 2015
 * Arguments: "-B" "macro_default" "-W" "java:KalmanFilterJava,KalmanFilterJava" "-T" 
 * "link:lib" "-d" "C:\\Users\\Administrator\\Desktop\\Oil Gas Data 
 * 2\\Identification\\KalmanFilterJava\\src" "-w" "enable:specified_file_mismatch" "-w" 
 * "enable:repeated_file" "-w" "enable:switch_ignored" "-w" "enable:missing_lib_sentinel" 
 * "-w" "enable:demo_license" "-v" 
 * "class{KalmanFilterJava:C:\\Users\\Administrator\\Desktop\\Oil Gas Data 
 * 2\\Identification\\KalmanFilterJava.m}" 
 */

package KalmanFilterJava;

import com.mathworks.toolbox.javabuilder.pooling.Poolable;
import java.util.List;
import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * The <code>KalmanFilterJavaRemote</code> class provides a Java RMI-compliant interface 
 * to the M-functions from the files:
 * <pre>
 *  C:\\Users\\Administrator\\Desktop\\Oil Gas Data 2\\Identification\\KalmanFilterJava.m
 * </pre>
 * The {@link #dispose} method <b>must</b> be called on a 
 * <code>KalmanFilterJavaRemote</code> instance when it is no longer needed to ensure 
 * that native resources allocated by this class are properly freed, and the server-side 
 * proxy is unexported.  (Failure to call dispose may result in server-side threads not 
 * being properly shut down, which often appears as a hang.)  
 *
 * This interface is designed to be used together with 
 * <code>com.mathworks.toolbox.javabuilder.remoting.RemoteProxy</code> to automatically 
 * generate RMI server proxy objects for instances of KalmanFilterJava.KalmanFilterJava.
 */
public interface KalmanFilterJavaRemote extends Poolable
{
    /**
     * Provides the standard interface for calling the <code>KalmanFilterJava</code> 
     * M-function with 2 input arguments.  
     *
     * Input arguments to standard interface methods may be passed as sub-classes of 
     * <code>com.mathworks.toolbox.javabuilder.MWArray</code>, or as arrays of any 
     * supported Java type (i.e. scalars and multidimensional arrays of any numeric, 
     * boolean, or character type, or String). Arguments passed as Java types are 
     * converted to MATLAB arrays according to default conversion rules.
     *
     * All inputs to this method must implement either Serializable (pass-by-value) or 
     * Remote (pass-by-reference) as per the RMI specification.
     *
     * M-documentation as provided by the author of the M function:
     * <pre>
     * % Assume that the process noise covariance matrix V is also initially equal
     * % to process covariance matrix
     * </pre>
     *
     * @param nargout Number of outputs to return.
     * @param rhs The inputs to the M function.
     *
     * @return Array of length nargout containing the function outputs. Outputs are 
     * returned as sub-classes of <code>com.mathworks.toolbox.javabuilder.MWArray</code>. 
     * Each output array should be freed by calling its <code>dispose()</code> method.
     *
     * @throws java.jmi.RemoteException An error has occurred during the function call or 
     * in communication with the server.
     */
    public Object[] KalmanFilterJava(int nargout, Object... rhs) throws RemoteException;
  
    /** Frees native resources associated with the remote server object */
    void dispose() throws RemoteException;
}
