1 /*
   2  * Copyright (c) 1997, 2004, 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 org.omg.CORBA.portable;
  26 
  27 import org.omg.CORBA.TypeCode;
  28 import org.omg.CORBA.Principal;
  29 import org.omg.CORBA.Any;
  30 
  31 /**
  32  * InputStream is the Java API for reading IDL types
  33  * from CDR marshal streams. These methods are used by the ORB to
  34  * unmarshal IDL types as well as to extract IDL types out of Anys.
  35  * The <code>_array</code> versions of the methods can be directly
  36  * used to read sequences and arrays of IDL types.
  37  *
  38  * @since   JDK1.2
  39  */
  40 
  41 public abstract class InputStream extends java.io.InputStream
  42 {
  43     /**
  44      * Reads a boolean value from this input stream.
  45      *
  46      * @return the <code>boolean</code> value read from this input stream
  47      */
  48     public abstract boolean     read_boolean();
  49     /**
  50      * Reads a char value from this input stream.
  51      *
  52      * @return the <code>char</code> value read from this input stream
  53      */
  54     public abstract char        read_char();
  55     /**
  56      * Reads a wide char value from this input stream.
  57      *
  58      * @return the <code>char</code> value read from this input stream
  59      */
  60     public abstract char        read_wchar();
  61     /**
  62      * Reads an octet (that is, a byte) value from this input stream.
  63      *
  64      * @return the <code>byte</code> value read from this input stream
  65      */
  66     public abstract byte        read_octet();
  67     /**
  68      * Reads a short value from this input stream.
  69      *
  70      * @return the <code>short</code> value read from this input stream
  71      */
  72     public abstract short       read_short();
  73     /**
  74      * Reads a unsigned short value from this input stream.
  75      *
  76      * @return the <code>short</code> value read from this input stream
  77      */
  78     public abstract short       read_ushort();
  79     /**
  80      * Reads a CORBA long (that is, Java int) value from this input stream.
  81      *
  82      * @return the <code>int</code> value read from this input stream
  83      */
  84     public abstract int         read_long();
  85     /**
  86      * Reads an unsigned CORBA long (that is, Java int) value from this input
  87 stream.
  88      *
  89      * @return the <code>int</code> value read from this input stream
  90      */
  91     public abstract int         read_ulong();
  92     /**
  93      * Reads a CORBA longlong (that is, Java long) value from this input stream.
  94      *
  95      * @return the <code>long</code> value read from this input stream
  96      */
  97     public abstract long        read_longlong();
  98     /**
  99      * Reads a CORBA unsigned longlong (that is, Java long) value from this input
 100 stream.
 101      *
 102      * @return the <code>long</code> value read from this input stream
 103      */
 104     public abstract long        read_ulonglong();
 105     /**
 106      * Reads a float value from this input stream.
 107      *
 108      * @return the <code>float</code> value read from this input stream
 109      */
 110     public abstract float       read_float();
 111     /**
 112      * Reads a double value from this input stream.
 113      *
 114      * @return the <code>double</code> value read from this input stream
 115      */
 116     public abstract double      read_double();
 117     /**
 118      * Reads a string value from this input stream.
 119      *
 120      * @return the <code>String</code> value read from this input stream
 121      */
 122     public abstract String      read_string();
 123     /**
 124      * Reads a wide string value from this input stream.
 125      *
 126      * @return the <code>String</code> value read from this input stream
 127      */
 128     public abstract String      read_wstring();
 129 
 130     /**
 131      * Reads an array of booleans from this input stream.
 132      * @param value returned array of booleans.
 133      * @param offset offset on the stream.
 134      * @param length length of buffer to read.
 135      */
 136     public abstract void        read_boolean_array(boolean[] value, int offset, int
 137 length);
 138     /**
 139      * Reads an array of chars from this input stream.
 140      * @param value returned array of chars.
 141      * @param offset offset on the stream.
 142      * @param length length of buffer to read.
 143      */
 144     public abstract void        read_char_array(char[] value, int offset, int
 145 length);
 146     /**
 147      * Reads an array of wide chars from this input stream.
 148      * @param value returned array of wide chars.
 149      * @param offset offset on the stream.
 150      * @param length length of buffer to read.
 151      */
 152     public abstract void        read_wchar_array(char[] value, int offset, int
 153 length);
 154     /**
 155      * Reads an array of octets (that is, bytes) from this input stream.
 156      * @param value returned array of octets (that is, bytes).
 157      * @param offset offset on the stream.
 158      * @param length length of buffer to read.
 159      */
 160     public abstract void        read_octet_array(byte[] value, int offset, int
 161 length);
 162     /**
 163      * Reads an array of shorts from this input stream.
 164      * @param value returned array of shorts.
 165      * @param offset offset on the stream.
 166      * @param length length of buffer to read.
 167      */
 168     public abstract void        read_short_array(short[] value, int offset, int
 169 length);
 170     /**
 171      * Reads an array of unsigned shorts from this input stream.
 172      * @param value returned array of shorts.
 173      * @param offset offset on the stream.
 174      * @param length length of buffer to read.
 175      */
 176     public abstract void        read_ushort_array(short[] value, int offset, int
 177 length);
 178     /**
 179      * Reads an array of CORBA longs (that is, Java ints) from this input stream.
 180      * @param value returned array of CORBA longs (that is, Java ints).
 181      * @param offset offset on the stream.
 182      * @param length length of buffer to read.
 183      */
 184     public abstract void        read_long_array(int[] value, int offset, int
 185 length);
 186     /**
 187      * Reads an array of unsigned CORBA longs (that is, Java ints) from this input
 188 stream.
 189      * @param value returned array of CORBA longs (that is, Java ints).
 190      * @param offset offset on the stream.
 191      * @param length length of buffer to read.
 192      */
 193     public abstract void        read_ulong_array(int[] value, int offset, int
 194 length);
 195     /**
 196      * Reads an array of CORBA longlongs (that is, Java longs) from this input
 197 stream.
 198      * @param value returned array of CORBA longs (that is, Java longs).
 199      * @param offset offset on the stream.
 200      * @param length length of buffer to read.
 201      */
 202     public abstract void        read_longlong_array(long[] value, int offset, int
 203 length);
 204     /**
 205      * Reads an array of unsigned CORBA longlongs (that is, Java longs) from this
 206 input stream.
 207      * @param value returned array of CORBA longs (that is, Java longs).
 208      * @param offset offset on the stream.
 209      * @param length length of buffer to read.
 210      */
 211     public abstract void        read_ulonglong_array(long[] value, int offset, int
 212 length);
 213     /**
 214      * Reads an array of floats from this input stream.
 215      * @param value returned array of floats.
 216      * @param offset offset on the stream.
 217      * @param length length of buffer to read.
 218      */
 219     public abstract void        read_float_array(float[] value, int offset, int
 220 length);
 221     /**
 222      * Reads an array of doubles from this input stream.
 223      * @param value returned array of doubles.
 224      * @param offset offset on the stream.
 225      * @param length length of buffer to read.
 226      */
 227     public abstract void        read_double_array(double[] value, int offset, int
 228 length);
 229 
 230     /**
 231      * Reads a CORBA object from this input stream.
 232      *
 233      * @return the <code>Object</code> instance read from this input stream.
 234      */
 235     public abstract org.omg.CORBA.Object read_Object();
 236     /**
 237      * Reads a <code>TypeCode</code> from this input stream.
 238      *
 239      * @return the <code>TypeCode</code> instance read from this input stream.
 240      */
 241     public abstract TypeCode    read_TypeCode();
 242     /**
 243      * Reads an Any from this input stream.
 244      *
 245      * @return the <code>Any</code> instance read from this input stream.
 246      */
 247     public abstract Any         read_any();
 248 
 249     /**
 250      * Returns principal for invocation.
 251      * @return Principal for invocation.
 252      * @deprecated Deprecated by CORBA 2.2.
 253      */
 254     @Deprecated
 255     public  Principal   read_Principal() {
 256         throw new org.omg.CORBA.NO_IMPLEMENT();
 257     }
 258 
 259 
 260     /**
 261      * @see <a href="package-summary.html#unimpl"><code>portable</code>
 262      * package comments for unimplemented features</a>
 263      */
 264     public int read() throws java.io.IOException {
 265         throw new org.omg.CORBA.NO_IMPLEMENT();
 266     }
 267 
 268     /**
 269      * Reads a BigDecimal number.
 270      * @return a java.math.BigDecimal number
 271      */
 272     public java.math.BigDecimal read_fixed() {
 273         throw new org.omg.CORBA.NO_IMPLEMENT();
 274     }
 275 
 276     /**
 277      * Reads a CORBA context from the stream.
 278      * @return a CORBA context
 279      * @see <a href="package-summary.html#unimpl"><code>portable</code>
 280      * package comments for unimplemented features</a>
 281      */
 282     public org.omg.CORBA.Context read_Context() {
 283         throw new org.omg.CORBA.NO_IMPLEMENT();
 284     }
 285     /*
 286      * The following methods were added by orbos/98-04-03: Java to IDL
 287      * Mapping. These are used by RMI over IIOP.
 288      */
 289 
 290     /**
 291      * Unmarshals an object and returns a CORBA Object,
 292      * which is an instance of the class passed as its argument.
 293      * This class is the stub class of the expected type.
 294      *
 295      * @param clz  The Class object for the stub class which
 296      * corresponds to the type that is statistically expected, or
 297      * the Class object for the RMI/IDL interface type that
 298      * is statistically expected.
 299      * @return an Object instance of clz read from this stream
 300      *
 301      * @see <a href="package-summary.html#unimpl"><code>portable</code>
 302      * package comments for unimplemented features</a>
 303      */
 304     public  org.omg.CORBA.Object read_Object(java.lang.Class
 305                                              clz) {
 306         throw new org.omg.CORBA.NO_IMPLEMENT();
 307     }
 308 
 309     /**
 310      * Returns the ORB that created this InputStream.
 311      *
 312      * @return the <code>ORB</code> object that created this stream
 313      *
 314      * @see <a href="package-summary.html#unimpl"><code>portable</code>
 315      * package comments for unimplemented features</a>
 316      */
 317     public org.omg.CORBA.ORB orb() {
 318         throw new org.omg.CORBA.NO_IMPLEMENT();
 319     }
 320 }