本文整理汇总了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();
}
示例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);
}
示例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);
}
示例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;
}
示例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));
}
示例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;
}
示例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);
}
示例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;
}
}
}
示例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);
}