1 /* 2 * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package com.sun.corba.se.impl.encoding; 26 27 import org.omg.CORBA.TypeCode; 28 import org.omg.CORBA.Principal; 29 import org.omg.CORBA.Any; 30 31 public interface MarshalInputStream { 32 public boolean read_boolean(); 33 public char read_char(); 34 public char read_wchar(); 35 public byte read_octet(); 36 public short read_short(); 37 public short read_ushort(); 38 public int read_long(); 39 public int read_ulong(); 40 public long read_longlong(); 41 public long read_ulonglong(); 42 public float read_float(); 43 public double read_double(); 44 public String read_string(); 45 public String read_wstring(); 46 47 public void read_boolean_array(boolean[] value, int offset, int length); 48 public void read_char_array(char[] value, int offset, int length); 49 public void read_wchar_array(char[] value, int offset, int length); 50 public void read_octet_array(byte[] value, int offset, int length); 51 public void read_short_array(short[] value, int offset, int length); 52 public void read_ushort_array(short[] value, int offset, int length); 53 public void read_long_array(int[] value, int offset, int length); 54 public void read_ulong_array(int[] value, int offset, int length); 55 public void read_longlong_array(long[] value, int offset, int length); 56 public void read_ulonglong_array(long[] value, int offset, int length); 57 public void read_float_array(float[] value, int offset, int length); 58 public void read_double_array(double[] value, int offset, int length); 59 60 public org.omg.CORBA.Object read_Object(); 61 public TypeCode read_TypeCode(); 62 public Any read_any(); 63 public Principal read_Principal(); 64 65 /* 66 * The methods necessary to support RMI 67 */ 68 public org.omg.CORBA.Object read_Object(Class stubClass); 69 public java.io.Serializable read_value() throws Exception; 70 71 /* 72 * Additional Methods 73 */ 74 public void consumeEndian(); 75 76 // Determines the current byte stream position 77 // (also handles fragmented streams) 78 public int getPosition(); 79 80 // mark/reset from java.io.InputStream 81 public void mark(int readAheadLimit); 82 public void reset(); 83 84 /** 85 * This must be called once before unmarshaling valuetypes or anything 86 * that uses repository IDs. The ORB's version should be set 87 * to the desired value prior to calling. 88 */ 89 public void performORBVersionSpecificInit(); 90 91 /** 92 * Tells the input stream to null any code set converter 93 * references, forcing it to reacquire them if it needs 94 * converters again. This is used when the server 95 * input stream needs to switch the connection's char code set 96 * converter to something different after reading the 97 * code set service context for the first time. Initially, 98 * we use ISO8859-1 to read the operation name (it can't 99 * be more than ASCII). 100 */ 101 public void resetCodeSetConverters(); 102 }