cdrinputstream.java
来自「JAVA 所有包」· Java 代码 · 共 520 行 · 第 1/2 页
JAVA
520 行
/* * @(#)CDRInputStream.java 1.35 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */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.org.omg.SendingContext.CodeBase;import com.sun.corba.se.pept.protocol.MessageMediator;import com.sun.corba.se.spi.logging.CORBALogDomains;import com.sun.corba.se.spi.orb.ORB;import com.sun.corba.se.spi.ior.iiop.GIOPVersion;import com.sun.corba.se.spi.protocol.CorbaMessageMediator;import com.sun.corba.se.impl.logging.ORBUtilSystemException;import com.sun.corba.se.impl.encoding.CodeSetConversion;import com.sun.corba.se.impl.encoding.OSFCodeSetRegistry;import com.sun.corba.se.impl.orbutil.ORBUtility;import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;/** * This is delegates to the real implementation. * * NOTE: * * Before using the stream for valuetype unmarshaling, one must call * performORBVersionSpecificInit(). */public abstract class CDRInputStream extends org.omg.CORBA_2_3.portable.InputStream implements com.sun.corba.se.impl.encoding.MarshalInputStream, org.omg.CORBA.DataInputStream, org.omg.CORBA.portable.ValueInputStream{ protected CorbaMessageMediator messageMediator; private CDRInputStreamBase impl; // We can move this out somewhere later. For now, it serves its purpose // to create a concrete CDR delegate based on the GIOP version. private static class InputStreamFactory { public static CDRInputStreamBase newInputStream( ORB orb, GIOPVersion version, byte encodingVersion) { switch(version.intValue()) { case GIOPVersion.VERSION_1_0: return new CDRInputStream_1_0(); case GIOPVersion.VERSION_1_1: return new CDRInputStream_1_1(); case GIOPVersion.VERSION_1_2: if (encodingVersion != Message.CDR_ENC_VERSION) { return new IDLJavaSerializationInputStream(encodingVersion); } return new CDRInputStream_1_2(); // else fall through and report exception. default: ORBUtilSystemException wrapper = ORBUtilSystemException.get( orb, CORBALogDomains.RPC_ENCODING ) ; throw wrapper.unsupportedGiopVersion( version ) ; } } } // Required for the case when a ClientResponseImpl is // created with a SystemException due to a dead server/closed // connection with no warning. Note that the stream will // not be initialized in this case. // // Probably also required by ServerRequestImpl. // // REVISIT. public CDRInputStream() { } public CDRInputStream(CDRInputStream is) { impl = is.impl.dup(); impl.setParent(this); } public CDRInputStream(org.omg.CORBA.ORB orb, ByteBuffer byteBuffer, int size, boolean littleEndian, GIOPVersion version, byte encodingVersion, BufferManagerRead bufMgr) { impl = InputStreamFactory.newInputStream((ORB)orb, version, encodingVersion); impl.init(orb, byteBuffer, size, littleEndian, bufMgr); impl.setParent(this); } // org.omg.CORBA.portable.InputStream public final boolean read_boolean() { return impl.read_boolean(); } public final char read_char() { return impl.read_char(); } public final char read_wchar() { return impl.read_wchar(); } public final byte read_octet() { return impl.read_octet(); } public final short read_short() { return impl.read_short(); } public final short read_ushort() { return impl.read_ushort(); } public final int read_long() { return impl.read_long(); } public final int read_ulong() { return impl.read_ulong(); } public final long read_longlong() { return impl.read_longlong(); } public final long read_ulonglong() { return impl.read_ulonglong(); } public final float read_float() { return impl.read_float(); } public final double read_double() { return impl.read_double(); } public final String read_string() { return impl.read_string(); } public final String read_wstring() { return impl.read_wstring(); } public final void read_boolean_array(boolean[] value, int offset, int length) { impl.read_boolean_array(value, offset, length); } public final void read_char_array(char[] value, int offset, int length) { impl.read_char_array(value, offset, length); } public final void read_wchar_array(char[] value, int offset, int length) { impl.read_wchar_array(value, offset, length); } public final void read_octet_array(byte[] value, int offset, int length) { impl.read_octet_array(value, offset, length); } public final void read_short_array(short[] value, int offset, int length) { impl.read_short_array(value, offset, length); } public final void read_ushort_array(short[] value, int offset, int length) { impl.read_ushort_array(value, offset, length); } public final void read_long_array(int[] value, int offset, int length) { impl.read_long_array(value, offset, length); } public final void read_ulong_array(int[] value, int offset, int length) { impl.read_ulong_array(value, offset, length); } public final void read_longlong_array(long[] value, int offset, int length) { impl.read_longlong_array(value, offset, length); } public final void read_ulonglong_array(long[] value, int offset, int length) { impl.read_ulonglong_array(value, offset, length); } public final void read_float_array(float[] value, int offset, int length) { impl.read_float_array(value, offset, length); } public final void read_double_array(double[] value, int offset, int length) { impl.read_double_array(value, offset, length); } public final org.omg.CORBA.Object read_Object() { return impl.read_Object(); } public final TypeCode read_TypeCode() { return impl.read_TypeCode(); } public final Any read_any() { return impl.read_any(); } public final Principal read_Principal() { return impl.read_Principal(); } public final int read() throws java.io.IOException { return impl.read(); } public final java.math.BigDecimal read_fixed() { return impl.read_fixed(); } public final org.omg.CORBA.Context read_Context() { return impl.read_Context(); } public final org.omg.CORBA.Object read_Object(java.lang.Class clz) { return impl.read_Object(clz); } public final org.omg.CORBA.ORB orb() { return impl.orb(); } // org.omg.CORBA_2_3.portable.InputStream public final java.io.Serializable read_value() { return impl.read_value(); } public final java.io.Serializable read_value(java.lang.Class clz) { return impl.read_value(clz); } public final java.io.Serializable read_value(org.omg.CORBA.portable.BoxedValueHelper factory) { return impl.read_value(factory); } public final java.io.Serializable read_value(java.lang.String rep_id) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?