blob: 1f0eedbaf7f7b24a3bd1d1ea3aa3626eb1be2c4d [file] [log] [blame]
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.corba.se.impl.encoding;
import java.io.IOException;
import java.io.Serializable;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.Principal;
import org.omg.CORBA.Any;
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
import com.sun.corba.se.impl.orbutil.ORBConstants;
import com.sun.org.omg.SendingContext.CodeBase;
/**
* Describes CDRInputStream delegates and provides some
* implementation. Non-default constructors are avoided in
* the delegation to separate instantiation from initialization,
* so we use init methods.
*/
abstract class CDRInputStreamBase extends java.io.InputStream
{
protected CDRInputStream parent;
public void setParent(CDRInputStream parent) {
this.parent = parent;
}
public abstract void init(org.omg.CORBA.ORB orb,
ByteBuffer byteBuffer,
int size,
boolean littleEndian,
BufferManagerRead bufferManager);
// org.omg.CORBA.portable.InputStream
public abstract boolean read_boolean();
public abstract char read_char();
public abstract char read_wchar();
public abstract byte read_octet();
public abstract short read_short();
public abstract short read_ushort();
public abstract int read_long();
public abstract int read_ulong();
public abstract long read_longlong();
public abstract long read_ulonglong();
public abstract float read_float();
public abstract double read_double();
public abstract String read_string();
public abstract String read_wstring();
public abstract void read_boolean_array(boolean[] value, int offset, int length);
public abstract void read_char_array(char[] value, int offset, int length);
public abstract void read_wchar_array(char[] value, int offset, int length);
public abstract void read_octet_array(byte[] value, int offset, int length);
public abstract void read_short_array(short[] value, int offset, int length);
public abstract void read_ushort_array(short[] value, int offset, int length);
public abstract void read_long_array(int[] value, int offset, int length);
public abstract void read_ulong_array(int[] value, int offset, int length);
public abstract void read_longlong_array(long[] value, int offset, int length);
public abstract void read_ulonglong_array(long[] value, int offset, int length);
public abstract void read_float_array(float[] value, int offset, int length);
public abstract void read_double_array(double[] value, int offset, int length);
public abstract org.omg.CORBA.Object read_Object();
public abstract TypeCode read_TypeCode();
public abstract Any read_any();
public abstract Principal read_Principal();
public int read() throws java.io.IOException {
throw new org.omg.CORBA.NO_IMPLEMENT();
}
public abstract java.math.BigDecimal read_fixed();
public org.omg.CORBA.Context read_Context() {
throw new org.omg.CORBA.NO_IMPLEMENT();
}
public abstract org.omg.CORBA.Object read_Object(java.lang.Class clz);
public abstract org.omg.CORBA.ORB orb();
// org.omg.CORBA_2_3.portable.InputStream
public abstract java.io.Serializable read_value();
public abstract java.io.Serializable read_value(java.lang.Class clz);
public abstract java.io.Serializable read_value(org.omg.CORBA.portable.BoxedValueHelper factory);
public abstract java.io.Serializable read_value(java.lang.String rep_id);
public abstract java.io.Serializable read_value(java.io.Serializable value);
public abstract java.lang.Object read_abstract_interface();
public abstract java.lang.Object read_abstract_interface(java.lang.Class clz);
// com.sun.corba.se.impl.encoding.MarshalInputStream
public abstract void consumeEndian();
public abstract int getPosition();
// org.omg.CORBA.DataInputStream
public abstract java.lang.Object read_Abstract ();
public abstract java.io.Serializable read_Value ();
public abstract void read_any_array (org.omg.CORBA.AnySeqHolder seq, int offset, int length);
public abstract void read_boolean_array (org.omg.CORBA.BooleanSeqHolder seq, int offset, int length);
public abstract void read_char_array (org.omg.CORBA.CharSeqHolder seq, int offset, int length);
public abstract void read_wchar_array (org.omg.CORBA.WCharSeqHolder seq, int offset, int length);
public abstract void read_octet_array (org.omg.CORBA.OctetSeqHolder seq, int offset, int length);
public abstract void read_short_array (org.omg.CORBA.ShortSeqHolder seq, int offset, int length);
public abstract void read_ushort_array (org.omg.CORBA.UShortSeqHolder seq, int offset, int length);
public abstract void read_long_array (org.omg.CORBA.LongSeqHolder seq, int offset, int length);
public abstract void read_ulong_array (org.omg.CORBA.ULongSeqHolder seq, int offset, int length);
public abstract void read_ulonglong_array (org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length);
public abstract void read_longlong_array (org.omg.CORBA.LongLongSeqHolder seq, int offset, int length);
public abstract void read_float_array (org.omg.CORBA.FloatSeqHolder seq, int offset, int length);
public abstract void read_double_array (org.omg.CORBA.DoubleSeqHolder seq, int offset, int length);
// org.omg.CORBA.portable.ValueBase
public abstract String[] _truncatable_ids();
// java.io.InputStream
// REVISIT - should we make these throw UnsupportedOperationExceptions?
// Right now, they'll go up to the java.io versions!
// public abstract int read(byte b[]) throws IOException;
// public abstract int read(byte b[], int off, int len) throws IOException
// public abstract long skip(long n) throws IOException;
// public abstract int available() throws IOException;
// public abstract void close() throws IOException;
public abstract void mark(int readlimit);
public abstract void reset();
// This should return false so that outside users (people using the JDK)
// don't have any guarantees that mark/reset will work in their
// custom marshaling code. This is necessary since they could do things
// like expect obj1a == obj1b in the following code:
//
// is.mark(10000);
// Object obj1a = is.readObject();
// is.reset();
// Object obj1b = is.readObject();
//
public boolean markSupported() { return false; }
// Needed by AnyImpl and ServiceContexts
public abstract CDRInputStreamBase dup();
// Needed by TCUtility
public abstract java.math.BigDecimal read_fixed(short digits, short scale);
// Needed by TypeCodeImpl
public abstract boolean isLittleEndian();
// Needed by request and reply messages for GIOP versions >= 1.2 only.
abstract void setHeaderPadding(boolean headerPadding);
// Needed by IIOPInputStream and other subclasses
public abstract ByteBuffer getByteBuffer();
public abstract void setByteBuffer(ByteBuffer byteBuffer);
public abstract void setByteBufferWithInfo(ByteBufferWithInfo bbwi);
public abstract int getBufferLength();
public abstract void setBufferLength(int value);
public abstract int getIndex();
public abstract void setIndex(int value);
public abstract void orb(org.omg.CORBA.ORB orb);
public abstract BufferManagerRead getBufferManager();
public abstract GIOPVersion getGIOPVersion();
abstract CodeBase getCodeBase();
abstract void printBuffer();
abstract void alignOnBoundary(int octetBoundary);
abstract void performORBVersionSpecificInit();
public abstract void resetCodeSetConverters();
// ValueInputStream -------------------------
public abstract void start_value();
public abstract void end_value();
}