当前位置: 首页>>代码示例>>Java>>正文


Java ByteBufferWithInfo类代码示例

本文整理汇总了Java中com.sun.corba.se.impl.encoding.ByteBufferWithInfo的典型用法代码示例。如果您正苦于以下问题:Java ByteBufferWithInfo类的具体用法?Java ByteBufferWithInfo怎么用?Java ByteBufferWithInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ByteBufferWithInfo类属于com.sun.corba.se.impl.encoding包,在下文中一共展示了ByteBufferWithInfo类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: init

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
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();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:20,代码来源:CDROutputStream_1_0.java

示例2: writeTo

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
/**
 * 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);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:30,代码来源:CDROutputObject.java

示例3: writeTo

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
/**
 * 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 connection 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);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:30,代码来源:CDROutputObject.java

示例4: readGIOPBody

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:MessageBase.java

示例5: overflow

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
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));
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:BufferManagerWriteStream.java

示例6: overflow

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:12,代码来源:BufferManagerWriteGrow.java

示例7: overflow

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
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);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:28,代码来源:BufferManagerWriteCollect.java

示例8: close

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
/**
 * 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;
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:38,代码来源:BufferManagerWriteCollect.java

示例9: Test6852078

import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入依赖的package包/类
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);
    }
 
开发者ID:arodchen,项目名称:MaxSim,代码行数:12,代码来源:Test6852078.java


注:本文中的com.sun.corba.se.impl.encoding.ByteBufferWithInfo类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。