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 + -
显示快捷键?