/* * @(#)MarshalInputStream.java 1.32 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.sun.corba.se.impl.encoding; import org.omg.CORBA.TypeCode; import org.omg.CORBA.Principal; import org.omg.CORBA.Any; public interface MarshalInputStream { public boolean read_boolean(); public char read_char(); public char read_wchar(); public byte read_octet(); public short read_short(); public short read_ushort(); public int read_long(); public int read_ulong(); public long read_longlong(); public long read_ulonglong(); public float read_float(); public double read_double(); public String read_string(); public String read_wstring(); public void read_boolean_array(boolean[] value, int offset, int length); public void read_char_array(char[] value, int offset, int length); public void read_wchar_array(char[] value, int offset, int length); public void read_octet_array(byte[] value, int offset, int length); public void read_short_array(short[] value, int offset, int length); public void read_ushort_array(short[] value, int offset, int length); public void read_long_array(int[] value, int offset, int length); public void read_ulong_array(int[] value, int offset, int length); public void read_longlong_array(long[] value, int offset, int length); public void read_ulonglong_array(long[] value, int offset, int length); public void read_float_array(float[] value, int offset, int length); public void read_double_array(double[] value, int offset, int length); public org.omg.CORBA.Object read_Object(); public TypeCode read_TypeCode(); public Any read_any(); public Principal read_Principal(); /* * The methods necessary to support RMI */ public org.omg.CORBA.Object read_Object(Class stubClass); public java.io.Serializable read_value() throws Exception; /* * Additional Methods */ public void consumeEndian(); // Determines the current byte stream position // (also handles fragmented streams) public int getPosition(); // mark/reset from java.io.InputStream public void mark(int readAheadLimit); public void reset(); /** * This must be called once before unmarshaling valuetypes or anything * that uses repository IDs. The ORB's version should be set * to the desired value prior to calling. */ public void performORBVersionSpecificInit(); /** * Tells the input stream to null any code set converter * references, forcing it to reacquire them if it needs * converters again. This is used when the server * input stream needs to switch the connection's char code set * converter to something different after reading the * code set service context for the first time. Initially, * we use ISO8859-1 to read the operation name (it can't * be more than ASCII). */ public void resetCodeSetConverters(); }