Methods Summary |
---|
public FragmentMessage | createFragmentMessage()Allows us to create a fragment message from any message type.
// check for message type validity
switch (this.message_type) {
case GIOPCancelRequest :
case GIOPCloseConnection :
case GIOPMessageError :
throw wrapper.fragmentationDisallowed(
CompletionStatus.COMPLETED_MAYBE);
case GIOPLocateRequest :
case GIOPLocateReply :
if (this.GIOP_version.equals(GIOPVersion.V1_1)) {
throw wrapper.fragmentationDisallowed(
CompletionStatus.COMPLETED_MAYBE);
}
break;
}
/*
// A fragmented mesg can be created only if the current mesg' fragment
// bit is set. Otherwise, raise error
// too stringent check
if ( (this.flags & MORE_FRAGMENTS_BIT) != MORE_FRAGMENTS_BIT ) {
throw wrapper.fragmentationDisallowed( CompletionStatus.COMPLETED_MAYBE);
}
*/
if (this.GIOP_version.equals(GIOPVersion.V1_1)) {
return new FragmentMessage_1_1(this);
} else if (this.GIOP_version.equals(GIOPVersion.V1_2)) {
return new FragmentMessage_1_2(this);
}
throw wrapper.giopVersionError( CompletionStatus.COMPLETED_MAYBE);
|
public com.sun.corba.se.spi.ior.iiop.GIOPVersion | getGIOPVersion()
return this.GIOP_version;
|
public int | getSize()
return this.message_size;
|
public int | getType()
return this.message_type;
|
public boolean | isLittleEndian()
return ((this.flags & LITTLE_ENDIAN_BIT) == LITTLE_ENDIAN_BIT);
|
public boolean | moreFragmentsToFollow()
return ( (this.flags & MORE_FRAGMENTS_BIT) == MORE_FRAGMENTS_BIT );
|
public void | read(org.omg.CORBA.portable.InputStream istream)
/*
this.magic = istream.read_long();
this.GIOP_version = (new GIOPVersion()).read(istream);
this.flags = istream.read_octet();
this.message_type = istream.read_octet();
this.message_size = istream.read_ulong();
*/
|
public void | setSize(java.nio.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 void | setThreadPoolToUse(int poolToUse)
// IMPORTANT: Bitwise operations will promote
// byte types to int before performing
// bitwise operations. And, Java
// types are signed.
int tmpFlags = poolToUse << 2;
tmpFlags &= UPPER_THREE_BYTES_OF_INT_MASK;
tmpFlags |= flags;
flags = (byte)tmpFlags;
|
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_octet(this.flags);
ostream.write_octet(this.message_type);
ostream.write_ulong(this.message_size);
|