public CDRInputObject(ORB orb, CorbaConnection corbaConnection, ByteBuffer byteBuffer, Message header) { super(orb, byteBuffer, header.getSize(), header.isLittleEndian(), header.getGIOPVersion(), header .getEncodingVersion(), BufferManagerFactory.newBufferManagerRead(header.getGIOPVersion(), header.getEncodingVersion(), orb)); this.corbaConnection = corbaConnection; this.wrapper = ORBUtilSystemException.get(orb, CORBALogDomains.RPC_ENCODING); this.omgWrapper = OMGSystemException.get(orb, CORBALogDomains.RPC_ENCODING); if (orb.transportDebugFlag) { dprint(".CDRInputObject constructor:"); } getBufferManager().init(header); this.header = header; unmarshaledHeader = false; setIndex(Message.GIOPMessageHeaderLength); setBufferLength(header.getSize()); }
public void init(Message msg) { if (msg != null) endOfStream = !msg.moreFragmentsToFollow(); }
public static Message readGIOPBody(ORB orb, CorbaConnection connection, Message msg) { ReadTimeouts readTimeouts = orb.getORBData().getTransportTCPReadTimeouts(); ByteBuffer buf = msg.getByteBuffer(); buf.position(MessageBase.GIOPMessageHeaderLength); int msgSizeMinusHeader = msg.getSize() - MessageBase.GIOPMessageHeaderLength; try { buf = connection .read(buf, GIOPMessageHeaderLength, msgSizeMinusHeader, readTimeouts.get_max_time_to_wait()); } catch (IOException e) { throw wrapper.ioexceptionWhenReadingConnection(e); } msg.setByteBuffer(buf); if (orb.giopDebugFlag) { dprint(".readGIOPBody: received message:"); ByteBuffer viewBuffer = buf.asReadOnlyBuffer(); viewBuffer.position(0).limit(msg.getSize()); ByteBufferWithInfo bbwi = new ByteBufferWithInfo(orb, viewBuffer); CDRInputStream_1_0.printBuffer(bbwi); } return msg; }
public CDROutputObject(ORB orb, CorbaMessageMediator mediator, GIOPVersion giopVersion, CorbaConnection connection, Message header, byte streamFormatVersion) { this(orb, giopVersion, header, BufferManagerFactory.newBufferManagerWrite(giopVersion, header.getEncodingVersion(), orb), streamFormatVersion, mediator); this.connection = connection; }
public void overflow(ByteBufferWithInfo bbwi) { // Set the fragment's moreFragments field to true MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT); sendFragment(false); // Reuse the old buffer // REVISIT - need to account for case when needed > available even after fragmenting. This is the large array // case, so the caller should retry when it runs out of space. bbwi.position(0); bbwi.buflen = bbwi.byteBuffer.limit(); bbwi.fragmented = true; // Now we must marshal in the fragment header/GIOP header // REVISIT - we can optimize this by not creating the fragment message each time. FragmentMessage header = ((CDROutputObject) outputObject).getMessageHeader().createFragmentMessage(); header.write(((CDROutputObject) outputObject)); }
public static int getRequestId(Message msg) { switch (msg.getType()) { case GIOPRequest : return ((RequestMessage) msg).getRequestId(); case GIOPReply : return ((ReplyMessage) msg).getRequestId(); case GIOPLocateRequest : return ((LocateRequestMessage) msg).getRequestId(); case GIOPLocateReply : return ((LocateReplyMessage) msg).getRequestId(); case GIOPCancelRequest : return ((CancelRequestMessage) msg).getRequestId(); case GIOPFragment : return ((FragmentMessage) msg).getRequestId(); } throw wrapper.illegalGiopMsgType(CompletionStatus.COMPLETED_MAYBE); }
getMessageHeader().read(this); unmarshaledHeader = true;
public static Message readGIOPBody(ORB orb, CorbaConnection connection, Message msg) { ReadTimeouts readTimeouts = orb.getORBData().getTransportTCPReadTimeouts(); ByteBuffer buf = msg.getByteBuffer(); buf.position(MessageBase.GIOPMessageHeaderLength); int msgSizeMinusHeader = msg.getSize() - MessageBase.GIOPMessageHeaderLength; try { buf = connection .read(buf, GIOPMessageHeaderLength, msgSizeMinusHeader, readTimeouts.get_max_time_to_wait()); } catch (IOException e) { throw wrapper.ioexceptionWhenReadingConnection(e); } msg.setByteBuffer(buf); if (orb.giopDebugFlag) { dprint(".readGIOPBody: received message:"); ByteBuffer viewBuffer = buf.asReadOnlyBuffer(); viewBuffer.position(0).limit(msg.getSize()); ByteBufferWithInfo bbwi = new ByteBufferWithInfo(orb, viewBuffer); CDRInputStream_1_0.printBuffer(bbwi); } return msg; }
public CDROutputObject(ORB orb, CorbaMessageMediator mediator, GIOPVersion giopVersion, CorbaConnection connection, Message header, byte streamFormatVersion) { this(orb, giopVersion, header, BufferManagerFactory.newBufferManagerWrite(giopVersion, header.getEncodingVersion(), orb), streamFormatVersion, mediator); this.connection = connection; }
public void overflow(ByteBufferWithInfo bbwi) { // Set the fragment's moreFragments field to true MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT); sendFragment(false); // Reuse the old buffer // REVISIT - need to account for case when needed > available even after fragmenting. This is the large array // case, so the caller should retry when it runs out of space. bbwi.position(0); bbwi.buflen = bbwi.byteBuffer.limit(); bbwi.fragmented = true; // Now we must marshal in the fragment header/GIOP header // REVISIT - we can optimize this by not creating the fragment message each time. FragmentMessage header = ((CDROutputObject) outputObject).getMessageHeader().createFragmentMessage(); header.write(((CDROutputObject) outputObject)); }
public static int getRequestId(Message msg) { switch (msg.getType()) { case GIOPRequest : return ((RequestMessage) msg).getRequestId(); case GIOPReply : return ((ReplyMessage) msg).getRequestId(); case GIOPLocateRequest : return ((LocateRequestMessage) msg).getRequestId(); case GIOPLocateReply : return ((LocateReplyMessage) msg).getRequestId(); case GIOPCancelRequest : return ((CancelRequestMessage) msg).getRequestId(); case GIOPFragment : return ((FragmentMessage) msg).getRequestId(); } throw wrapper.illegalGiopMsgType(CompletionStatus.COMPLETED_MAYBE); }
getMessageHeader().read(this); unmarshaledHeader = true;
public CDRInputObject(ORB orb, CorbaConnection corbaConnection, ByteBuffer byteBuffer, Message header) { super(orb, byteBuffer, header.getSize(), header.isLittleEndian(), header.getGIOPVersion(), header .getEncodingVersion(), BufferManagerFactory.newBufferManagerRead(header.getGIOPVersion(), header.getEncodingVersion(), orb)); this.corbaConnection = corbaConnection; this.wrapper = ORBUtilSystemException.get(orb, CORBALogDomains.RPC_ENCODING); this.omgWrapper = OMGSystemException.get(orb, CORBALogDomains.RPC_ENCODING); if (orb.transportDebugFlag) { dprint(".CDRInputObject constructor:"); } getBufferManager().init(header); this.header = header; unmarshaledHeader = false; setIndex(Message.GIOPMessageHeaderLength); setBufferLength(header.getSize()); }
public CDROutputObject(ORB orb, MessageMediator messageMediator, Message header, byte streamFormatVersion, int strategy) { this(orb, ((CorbaMessageMediator) messageMediator).getGIOPVersion(), header, BufferManagerFactory .newBufferManagerWrite(strategy, header.getEncodingVersion(), orb), streamFormatVersion, (CorbaMessageMediator) messageMediator); }
public void overflow(ByteBufferWithInfo bbwi) { // Set the fragment's moreFragments field to true MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT); // Enqueue the previous fragment queue.enqueue(bbwi); // Create a new bbwi ByteBufferWithInfo newBbwi = new ByteBufferWithInfo(orb, this); newBbwi.fragmented = true; // XREVISIT - Downcast ((CDROutputObject) outputObject).setByteBufferWithInfo(newBbwi); // Now we must marshal in the fragment header/GIOP header // REVISIT - we can optimize this by not creating the fragment message each time. // XREVISIT - Downcast FragmentMessage header = ((CDROutputObject) outputObject).getMessageHeader().createFragmentMessage(); header.write((CDROutputObject) outputObject); }
public void init(Message msg) { if (msg != null) endOfStream = !msg.moreFragmentsToFollow(); }
public CDROutputObject(ORB orb, MessageMediator messageMediator, Message header, byte streamFormatVersion, int strategy) { this(orb, ((CorbaMessageMediator) messageMediator).getGIOPVersion(), header, BufferManagerFactory .newBufferManagerWrite(strategy, header.getEncodingVersion(), orb), streamFormatVersion, (CorbaMessageMediator) messageMediator); }
public void overflow(ByteBufferWithInfo bbwi) { // Set the fragment's moreFragments field to true MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT); // Enqueue the previous fragment queue.enqueue(bbwi); // Create a new bbwi ByteBufferWithInfo newBbwi = new ByteBufferWithInfo(orb, this); newBbwi.fragmented = true; // XREVISIT - Downcast ((CDROutputObject) outputObject).setByteBufferWithInfo(newBbwi); // Now we must marshal in the fragment header/GIOP header // REVISIT - we can optimize this by not creating the fragment message each time. // XREVISIT - Downcast FragmentMessage header = ((CDROutputObject) outputObject).getMessageHeader().createFragmentMessage(); header.write((CDROutputObject) outputObject); }
public CDROutputObject(ORB orb, MessageMediator messageMediator, Message header, byte streamFormatVersion) { this(orb, ((CorbaMessageMediator) messageMediator).getGIOPVersion(), header, BufferManagerFactory .newBufferManagerWrite(((CorbaMessageMediator) messageMediator).getGIOPVersion(), header.getEncodingVersion(), orb), streamFormatVersion, (CorbaMessageMediator) messageMediator); }
public CDROutputObject(ORB orb, MessageMediator messageMediator, Message header, byte streamFormatVersion) { this(orb, ((CorbaMessageMediator) messageMediator).getGIOPVersion(), header, BufferManagerFactory .newBufferManagerWrite(((CorbaMessageMediator) messageMediator).getGIOPVersion(), header.getEncodingVersion(), orb), streamFormatVersion, (CorbaMessageMediator) messageMediator); }