message_1_0.java

来自「JAVA 所有包」· Java 代码 · 共 127 行

JAVA
127
字号
/* * @(#)Message_1_0.java	1.11 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.protocol.giopmsgheaders;import java.nio.ByteBuffer;import org.omg.CORBA.INTERNAL;import org.omg.CORBA.CompletionStatus;import com.sun.corba.se.spi.ior.iiop.GIOPVersion;import com.sun.corba.se.spi.logging.CORBALogDomains ;import com.sun.corba.se.impl.logging.ORBUtilSystemException ;/* * This implements the GIOP 1.0 Message header. * * @author Ram Jeyaraman 05/14/2000 * @version 1.0 */public class Message_1_0        extends com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase {    private static ORBUtilSystemException wrapper = 	ORBUtilSystemException.get( CORBALogDomains.RPC_PROTOCOL ) ;    // Instance variables    int magic = (int) 0;    GIOPVersion GIOP_version = null;    boolean byte_order = false;    byte message_type = (byte) 0;    int message_size = (int) 0;    // Constructor    Message_1_0() {    }        Message_1_0(int _magic, boolean _byte_order, byte _message_type,            int _message_size) {        magic = _magic;        GIOP_version = GIOPVersion.V1_0;        byte_order = _byte_order;        message_type = _message_type;        message_size = _message_size;    }    // Accessor methods    public GIOPVersion getGIOPVersion() {        return this.GIOP_version;    }    public int getType() {    	return this.message_type;    }    public int getSize() {	    return this.message_size;    }    public boolean isLittleEndian() {    	return this.byte_order;    }    public boolean moreFragmentsToFollow() {    	return false;    }    // Mutator methods    public void	setSize(ByteBuffer byteBuffer, int size) {	    this.message_size = size;        //    	// Patch the size field in the header.    	//	    int patch = size - GIOPMessageHeaderLength;        if (!isLittleEndian()) {            byteBuffer.put(8,  (byte)((patch >>> 24) & 0xFF));            byteBuffer.put(9,  (byte)((patch >>> 16) & 0xFF));            byteBuffer.put(10, (byte)((patch >>> 8)  & 0xFF));            byteBuffer.put(11, (byte)((patch >>> 0)  & 0xFF));        } else {            byteBuffer.put(8,  (byte)((patch >>> 0)  & 0xFF));            byteBuffer.put(9,  (byte)((patch >>> 8)  & 0xFF));            byteBuffer.put(10, (byte)((patch >>> 16) & 0xFF));            byteBuffer.put(11, (byte)((patch >>> 24) & 0xFF));        }    }    public FragmentMessage createFragmentMessage() {	throw wrapper.fragmentationDisallowed(	    CompletionStatus.COMPLETED_MAYBE);    }            // IO methods    // This should do nothing even if it is called. The Message Header already    // is read off java.io.InputStream (not a CDRInputStream) by IIOPConnection    // in order to choose the correct CDR Version, msg_type, and msg_size.    // So, we would never need to read the Message Header off a CDRInputStream.    public void read(org.omg.CORBA.portable.InputStream istream) {        /*        this.magic = istream.read_long();        this.GIOP_version = (new GIOPVersion()).read(istream);        this.byte_order = istream.read_boolean();        this.message_type = istream.read_octet();        this.message_size = istream.read_ulong();        */    }    public void write(org.omg.CORBA.portable.OutputStream ostream) {        ostream.write_long(this.magic);        nullCheck(this.GIOP_version);        this.GIOP_version.write(ostream);        ostream.write_boolean(this.byte_order);        ostream.write_octet(this.message_type);        ostream.write_ulong(this.message_size);    }} // class Message_1_0

⌨️ 快捷键说明

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