package edu.ucla.nesl.mca.xdr; import java.io.Closeable; import java.io.DataInput; import java.io.IOException; /** * An interface implemented by input streams that support XDR. * * The XDR format is almost identical to the normal Java DataInput format, * except that items are padded to 4 byte boundaries, and strings are normally * stored in ASCII format. * * @author Tony Johnson (tonyj@slac.stanford.edu) * @version $Id: XDRDataInput.java 13659 2009-10-09 23:23:47Z tonyj $ */ public interface XDRDataInput extends DataInput, Closeable { /** * Skips appropriate amount to bring stream to 4-byte boundary. */ void pad() throws IOException; /** * Reads a double array. Assumes int length proceeds array. Throws an * exception if array length > 32767 to protect against bad data exhausting * memory. If buffer is not null, and is large enough to hold array, it is * filled and returned, otherwise a new array is allocated and returned. */ double[] readDoubleArray(double[] buffer) throws IOException; /** * Reads a float array. Assumes int length proceeds array. Throws an * exception if array length > 32767 to protect against bad data exhausting * memory. If buffer is not null, and is large enough to hold array, it is * filled and returned, otherwise a new array is allocated and returned. */ float[] readFloatArray(float[] buffer) throws IOException; /** * Reads an integer array. Assumes int length proceeds array. Throws an * exception if array length > 32767 to protect against bad data exhausting * memory. If buffer is not null, and is large enough to hold array, it is * filled and returned, otherwise a new array is allocated and returned. */ int[] readIntArray(int[] buffer) throws IOException; /** * Read a String. Assumes int length proceeds String. Throws an exception if * string length > 32767 to protect against bad data exhausting memory. */ String readString() throws IOException; /** * Reads a String of length l bytes, and skips appropriate amount to bring * stream to 4-byte boundary. */ String readString(int l) throws IOException; }