cdrinputstream_1_2.java

来自「java jdk 1.4的源码」· Java 代码 · 共 73 行

JAVA
73
字号
/* * @(#)CDRInputStream_1_2.java	1.11 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.internal.iiop;import org.omg.CORBA.DATA_CONVERSION;import org.omg.CORBA.CompletionStatus;import com.sun.corba.se.internal.orbutil.MinorCodes;import com.sun.corba.se.internal.core.GIOPVersion;public class CDRInputStream_1_2 extends CDRInputStream_1_1{    protected void alignAndCheck(int align, int n) {        checkBlockLength();        // In GIOP 1.2, a fragment may end with some alignment        // padding (which leads to all fragments ending perfectly        // on evenly divisible 8 byte boundaries).  A new fragment        // never requires alignment with the header since it ends        // on an 8 byte boundary.        bbwi.index += computeAlignment(align);    	if (bbwi.index + n > bbwi.buflen) {            grow(1, n);        }    }    public GIOPVersion getGIOPVersion() {        return GIOPVersion.V1_2;    }            public char read_wchar() {        // In GIOP 1.2, a wchar is encoded as an unsigned octet length        // followed by the octets of the converted wchar.        int numBytes = read_octet();        char[] result = getConvertedChars(numBytes, getWCharConverter());        // Did the provided bytes convert to more than one        // character?  This may come up as more unicode values are        // assigned, and a single 16 bit Java char isn't enough.        // Better to use strings for i18n purposes.        if (getWCharConverter().getNumChars() > 1)            throw new DATA_CONVERSION(MinorCodes.BTC_RESULT_MORE_THAN_ONE_CHAR,                                      CompletionStatus.COMPLETED_NO);        return result[0];    }    public String read_wstring() {        // In GIOP 1.2, wstrings are not terminated by a null.  The        // length is the number of octets in the converted format.        // A zero length string is represented with the 4 byte length        // value of 0.        int len = read_long();        // IMPORTANT: Do not replace 'new String("")' with "", it may result        // in a Serialization bug (See serialization.zerolengthstring) and        // bug id: 4728756 for details        if (len == 0)            return new String("");        checkForNegativeLength(len);        return new String(getConvertedChars(len, getWCharConverter()),                          0,                          getWCharConverter().getNumChars());    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?