com.sun.corba.se.impl.encoding.ByteBufferWithInfo Java Examples

The following examples show how to use com.sun.corba.se.impl.encoding.ByteBufferWithInfo. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: jdk1.8-source-analysis   Author: raysonfang   File: CDROutputStream_1_0.java    License: Apache License 2.0 6 votes vote down vote up
public void init(org.omg.CORBA.ORB orb,
                    boolean littleEndian,
                    BufferManagerWrite bufferManager,
                    byte streamFormatVersion,
                    boolean usePooledByteBuffers)
{
    // ORB must not be null.  See CDROutputStream constructor.
    this.orb = (ORB)orb;
    this.wrapper = ORBUtilSystemException.get( this.orb,
        CORBALogDomains.RPC_ENCODING ) ;
    debug = this.orb.transportDebugFlag;

    this.littleEndian = littleEndian;
    this.bufferManagerWrite = bufferManager;
    this.bbwi = new ByteBufferWithInfo(orb, bufferManager, usePooledByteBuffers);
    this.streamFormatVersion = streamFormatVersion;

    createRepositoryIdHandlers();
}
 
Example #2
Source Project: jdk1.8-source-analysis   Author: raysonfang   File: CDROutputObject.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Write the contents of the CDROutputStream to the specified
 * output stream.  Has the side-effect of pushing any current
 * Message onto the Message list.
 * @param s The output stream to write to.
 */
public void writeTo(CorbaConnection connection)
    throws java.io.IOException
{

    //
    // Update the GIOP MessageHeader size field.
    //

    ByteBufferWithInfo bbwi = getByteBufferWithInfo();

    getMessageHeader().setSize(bbwi.byteBuffer, bbwi.getSize());

    if (orb() != null) {
        if (((ORB)orb()).transportDebugFlag) {
            dprint(".writeTo: " + connection);
        }
        if (((ORB)orb()).giopDebugFlag) {
            CDROutputStream_1_0.printBuffer(bbwi);
        }
    }
    bbwi.byteBuffer.position(0).limit(bbwi.getSize());
    connection.write(bbwi.byteBuffer);
}
 
Example #3
Source Project: openjdk-8-source   Author: keerath   File: CDROutputStream_1_0.java    License: GNU General Public License v2.0 6 votes vote down vote up
public void init(org.omg.CORBA.ORB orb,
                    boolean littleEndian,
                    BufferManagerWrite bufferManager,
                    byte streamFormatVersion,
                    boolean usePooledByteBuffers)
{
    // ORB must not be null.  See CDROutputStream constructor.
    this.orb = (ORB)orb;
    this.wrapper = ORBUtilSystemException.get( this.orb,
        CORBALogDomains.RPC_ENCODING ) ;
    debug = this.orb.transportDebugFlag;

    this.littleEndian = littleEndian;
    this.bufferManagerWrite = bufferManager;
    this.bbwi = new ByteBufferWithInfo(orb, bufferManager, usePooledByteBuffers);
    this.streamFormatVersion = streamFormatVersion;

    createRepositoryIdHandlers();
}
 
Example #4
Source Project: TencentKona-8   Author: Tencent   File: CDROutputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Write the contents of the CDROutputStream to the specified
 * output stream.  Has the side-effect of pushing any current
 * Message onto the Message list.
 * @param s The output stream to write to.
 */
public void writeTo(CorbaConnection connection)
    throws java.io.IOException
{

    //
    // Update the GIOP MessageHeader size field.
    //

    ByteBufferWithInfo bbwi = getByteBufferWithInfo();

    getMessageHeader().setSize(bbwi.byteBuffer, bbwi.getSize());

    if (orb() != null) {
        if (((ORB)orb()).transportDebugFlag) {
            dprint(".writeTo: " + connection);
        }
        if (((ORB)orb()).giopDebugFlag) {
            CDROutputStream_1_0.printBuffer(bbwi);
        }
    }
    bbwi.byteBuffer.position(0).limit(bbwi.getSize());
    connection.write(bbwi.byteBuffer);
}
 
Example #5
Source Project: openjdk-8   Author: bpupadhyaya   File: CDROutputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Write the contents of the CDROutputStream to the specified
 * output stream.  Has the side-effect of pushing any current
 * Message onto the Message list.
 * @param s The output stream to write to.
 */
public void writeTo(CorbaConnection connection)
    throws java.io.IOException
{

    //
    // Update the GIOP MessageHeader size field.
    //

    ByteBufferWithInfo bbwi = getByteBufferWithInfo();

    getMessageHeader().setSize(bbwi.byteBuffer, bbwi.getSize());

    if (orb() != null) {
        if (((ORB)orb()).transportDebugFlag) {
            dprint(".writeTo: " + connection);
        }
        if (((ORB)orb()).giopDebugFlag) {
            CDROutputStream_1_0.printBuffer(bbwi);
        }
    }
    bbwi.byteBuffer.position(0).limit(bbwi.getSize());
    connection.write(bbwi.byteBuffer);
}
 
Example #6
Source Project: openjdk-8-source   Author: keerath   File: CDROutputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Write the contents of the CDROutputStream to the specified
 * output stream.  Has the side-effect of pushing any current
 * Message onto the Message list.
 * @param s The output stream to write to.
 */
public void writeTo(CorbaConnection connection)
    throws java.io.IOException
{

    //
    // Update the GIOP MessageHeader size field.
    //

    ByteBufferWithInfo bbwi = getByteBufferWithInfo();

    getMessageHeader().setSize(bbwi.byteBuffer, bbwi.getSize());

    if (orb() != null) {
        if (((ORB)orb()).transportDebugFlag) {
            dprint(".writeTo: " + connection);
        }
        if (((ORB)orb()).giopDebugFlag) {
            CDROutputStream_1_0.printBuffer(bbwi);
        }
    }
    bbwi.byteBuffer.position(0).limit(bbwi.getSize());
    connection.write(bbwi.byteBuffer);
}
 
Example #7
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: CDROutputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Write the contents of the CDROutputStream to the specified
 * output stream.  Has the side-effect of pushing any current
 * Message onto the Message list.
 * @param s The output stream to write to.
 */
public void writeTo(CorbaConnection connection)
    throws java.io.IOException
{

    //
    // Update the GIOP MessageHeader size field.
    //

    ByteBufferWithInfo bbwi = getByteBufferWithInfo();

    getMessageHeader().setSize(bbwi.byteBuffer, bbwi.getSize());

    if (orb() != null) {
        if (((ORB)orb()).transportDebugFlag) {
            dprint(".writeTo: " + connection);
        }
        if (((ORB)orb()).giopDebugFlag) {
            CDROutputStream_1_0.printBuffer(bbwi);
        }
    }
    bbwi.byteBuffer.position(0).limit(bbwi.getSize());
    connection.write(bbwi.byteBuffer);
}
 
Example #8
Source Project: openjdk-jdk8u   Author: AdoptOpenJDK   File: CDROutputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Write the contents of the CDROutputStream to the specified
 * output stream.  Has the side-effect of pushing any current
 * Message onto the Message list.
 * @param s The output stream to write to.
 */
public void writeTo(CorbaConnection connection)
    throws java.io.IOException
{

    //
    // Update the GIOP MessageHeader size field.
    //

    ByteBufferWithInfo bbwi = getByteBufferWithInfo();

    getMessageHeader().setSize(bbwi.byteBuffer, bbwi.getSize());

    if (orb() != null) {
        if (((ORB)orb()).transportDebugFlag) {
            dprint(".writeTo: " + connection);
        }
        if (((ORB)orb()).giopDebugFlag) {
            CDROutputStream_1_0.printBuffer(bbwi);
        }
    }
    bbwi.byteBuffer.position(0).limit(bbwi.getSize());
    connection.write(bbwi.byteBuffer);
}
 
Example #9
Source Project: jdk1.8-source-analysis   Author: raysonfang   File: MessageBase.java    License: Apache License 2.0 5 votes vote down vote up
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;
}
 
Example #10
Source Project: hottub   Author: dsrg-uoft   File: BufferManagerWriteGrow.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // The code that once lived directly in CDROutputStream.grow()
    // has been moved ByteBufferWithInfo.growBuffer().

    // Grow ByteBufferWithInfo to a larger size.
    bbwi.growBuffer(orb);

    // Must be false for the grow case
    bbwi.fragmented = false;
}
 
Example #11
Source Project: jdk1.8-source-analysis   Author: raysonfang   File: BufferManagerWriteGrow.java    License: Apache License 2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // The code that once lived directly in CDROutputStream.grow()
    // has been moved ByteBufferWithInfo.growBuffer().

    // Grow ByteBufferWithInfo to a larger size.
    bbwi.growBuffer(orb);

    // Must be false for the grow case
    bbwi.fragmented = false;
}
 
Example #12
Source Project: openjdk-jdk9   Author: AdoptOpenJDK   File: BufferManagerWriteGrow.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // The code that once lived directly in CDROutputStream.grow()
    // has been moved ByteBufferWithInfo.growBuffer().

    // Grow ByteBufferWithInfo to a larger size.
    bbwi.growBuffer(orb);

    // Must be false for the grow case
    bbwi.fragmented = false;
}
 
Example #13
Source Project: jdk1.8-source-analysis   Author: raysonfang   File: BufferManagerWriteCollect.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Close the BufferManagerWrite - do any outstanding cleanup.
 *
 * For a BufferManagerWriteGrow any queued ByteBufferWithInfo must
 * have its ByteBuffer released to the ByteBufferPool.
 */
public void close()
{
    // iterate thru queue and release any ByteBufferWithInfo's
    // ByteBuffer that may be remaining on the queue to the
    // ByteBufferPool.

    Iterator bufs = iterator();

    ByteBufferPool byteBufferPool = orb.getByteBufferPool();

    while (bufs.hasNext())
    {
        ByteBufferWithInfo bbwi = (ByteBufferWithInfo)bufs.next();
        if (bbwi != null && bbwi.byteBuffer != null)
        {
            if (debug)
            {
                // print address of ByteBuffer being released
                int bbAddress = System.identityHashCode(bbwi.byteBuffer);
                StringBuffer sb = new StringBuffer(80);
                sb.append("close() - releasing ByteBuffer id (");
                sb.append(bbAddress).append(") to ByteBufferPool.");
                String msg = sb.toString();
                dprint(msg);
            }
             byteBufferPool.releaseByteBuffer(bbwi.byteBuffer);
             bbwi.byteBuffer = null;
             bbwi = null;
        }
    }
}
 
Example #14
Source Project: openjdk-8   Author: bpupadhyaya   File: BufferManagerWriteStream.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // Set the fragment's moreFragments field to true
    MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);

    try {
       sendFragment(false);
    } catch(SystemException se){
            orb.getPIHandler().invokeClientPIEndingPoint(
                    ReplyMessage.SYSTEM_EXCEPTION, se);
            throw se;
    }

    // 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));
}
 
Example #15
Source Project: openjdk-8   Author: bpupadhyaya   File: Test6852078.java    License: GNU General Public License v2.0 5 votes vote down vote up
public Test6852078(String [] args) {

        int capacity = 128;
        ByteBuffer bb = ByteBuffer.allocateDirect(capacity);
        ByteBufferWithInfo bbwi = new ByteBufferWithInfo( CorbaUtils.getOrb(null, -1, new Hashtable()), bb);
        byte[] tmpBuf;
        tmpBuf = new byte[bbwi.buflen];

        for (int i = 0; i < capacity; i++)
            tmpBuf[i] = bbwi.byteBuffer.get(i);
    }
 
Example #16
Source Project: TencentKona-8   Author: Tencent   File: MessageBase.java    License: GNU General Public License v2.0 5 votes vote down vote up
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;
}
 
Example #17
Source Project: TencentKona-8   Author: Tencent   File: BufferManagerWriteStream.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // Set the fragment's moreFragments field to true
    MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);

    try {
       sendFragment(false);
    } catch(SystemException se){
            orb.getPIHandler().invokeClientPIEndingPoint(
                    ReplyMessage.SYSTEM_EXCEPTION, se);
            throw se;
    }

    // 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));
}
 
Example #18
Source Project: TencentKona-8   Author: Tencent   File: BufferManagerWriteGrow.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // The code that once lived directly in CDROutputStream.grow()
    // has been moved ByteBufferWithInfo.growBuffer().

    // Grow ByteBufferWithInfo to a larger size.
    bbwi.growBuffer(orb);

    // Must be false for the grow case
    bbwi.fragmented = false;
}
 
Example #19
Source Project: hottub   Author: dsrg-uoft   File: BufferManagerWriteStream.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // Set the fragment's moreFragments field to true
    MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);

    try {
       sendFragment(false);
    } catch(SystemException se){
            orb.getPIHandler().invokeClientPIEndingPoint(
                    ReplyMessage.SYSTEM_EXCEPTION, se);
            throw se;
    }

    // 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));
}
 
Example #20
Source Project: openjdk-8-source   Author: keerath   File: MessageBase.java    License: GNU General Public License v2.0 5 votes vote down vote up
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;
}
 
Example #21
Source Project: TencentKona-8   Author: Tencent   File: BufferManagerWriteCollect.java    License: GNU General Public License v2.0 5 votes vote down vote up
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);
}
 
Example #22
Source Project: TencentKona-8   Author: Tencent   File: BufferManagerWriteCollect.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Close the BufferManagerWrite - do any outstanding cleanup.
 *
 * For a BufferManagerWriteGrow any queued ByteBufferWithInfo must
 * have its ByteBuffer released to the ByteBufferPool.
 */
public void close()
{
    // iterate thru queue and release any ByteBufferWithInfo's
    // ByteBuffer that may be remaining on the queue to the
    // ByteBufferPool.

    Iterator bufs = iterator();

    ByteBufferPool byteBufferPool = orb.getByteBufferPool();

    while (bufs.hasNext())
    {
        ByteBufferWithInfo bbwi = (ByteBufferWithInfo)bufs.next();
        if (bbwi != null && bbwi.byteBuffer != null)
        {
            if (debug)
            {
                // print address of ByteBuffer being released
                int bbAddress = System.identityHashCode(bbwi.byteBuffer);
                StringBuffer sb = new StringBuffer(80);
                sb.append("close() - releasing ByteBuffer id (");
                sb.append(bbAddress).append(") to ByteBufferPool.");
                String msg = sb.toString();
                dprint(msg);
            }
             byteBufferPool.releaseByteBuffer(bbwi.byteBuffer);
             bbwi.byteBuffer = null;
             bbwi = null;
        }
    }
}
 
Example #23
Source Project: jdk8u60   Author: chenghanpeng   File: Test6852078.java    License: GNU General Public License v2.0 5 votes vote down vote up
public Test6852078(String [] args) {

        int capacity = 128;
        ByteBuffer bb = ByteBuffer.allocateDirect(capacity);
        ByteBufferWithInfo bbwi = new ByteBufferWithInfo( CorbaUtils.getOrb(null, -1, new Hashtable()), bb);
        byte[] tmpBuf;
        tmpBuf = new byte[bbwi.buflen];

        for (int i = 0; i < capacity; i++)
            tmpBuf[i] = bbwi.byteBuffer.get(i);
    }
 
Example #24
Source Project: hottub   Author: dsrg-uoft   File: MessageBase.java    License: GNU General Public License v2.0 5 votes vote down vote up
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;
}
 
Example #25
Source Project: jdk8u60   Author: chenghanpeng   File: BufferManagerWriteStream.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // Set the fragment's moreFragments field to true
    MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);

    try {
       sendFragment(false);
    } catch(SystemException se){
            orb.getPIHandler().invokeClientPIEndingPoint(
                    ReplyMessage.SYSTEM_EXCEPTION, se);
            throw se;
    }

    // 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));
}
 
Example #26
Source Project: openjdk-8   Author: bpupadhyaya   File: BufferManagerWriteGrow.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // The code that once lived directly in CDROutputStream.grow()
    // has been moved ByteBufferWithInfo.growBuffer().

    // Grow ByteBufferWithInfo to a larger size.
    bbwi.growBuffer(orb);

    // Must be false for the grow case
    bbwi.fragmented = false;
}
 
Example #27
Source Project: openjdk-jdk8u-backup   Author: AdoptOpenJDK   File: BufferManagerWriteStream.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // Set the fragment's moreFragments field to true
    MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);

    try {
       sendFragment(false);
    } catch(SystemException se){
            orb.getPIHandler().invokeClientPIEndingPoint(
                    ReplyMessage.SYSTEM_EXCEPTION, se);
            throw se;
    }

    // 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));
}
 
Example #28
Source Project: JDKSourceCode1.8   Author: wupeixuan   File: BufferManagerWriteStream.java    License: MIT License 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // Set the fragment's moreFragments field to true
    MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);

    try {
       sendFragment(false);
    } catch(SystemException se){
            orb.getPIHandler().invokeClientPIEndingPoint(
                    ReplyMessage.SYSTEM_EXCEPTION, se);
            throw se;
    }

    // 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));
}
 
Example #29
Source Project: openjdk-8-source   Author: keerath   File: BufferManagerWriteGrow.java    License: GNU General Public License v2.0 5 votes vote down vote up
public void overflow (ByteBufferWithInfo bbwi)
{
    // The code that once lived directly in CDROutputStream.grow()
    // has been moved ByteBufferWithInfo.growBuffer().

    // Grow ByteBufferWithInfo to a larger size.
    bbwi.growBuffer(orb);

    // Must be false for the grow case
    bbwi.fragmented = false;
}
 
Example #30
Source Project: JDKSourceCode1.8   Author: wupeixuan   File: BufferManagerWriteCollect.java    License: MIT License 5 votes vote down vote up
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);
}