本文整理汇总了Java中com.sun.corba.se.impl.encoding.ByteBufferWithInfo.position方法的典型用法代码示例。如果您正苦于以下问题:Java ByteBufferWithInfo.position方法的具体用法?Java ByteBufferWithInfo.position怎么用?Java ByteBufferWithInfo.position使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.corba.se.impl.encoding.ByteBufferWithInfo
的用法示例。
在下文中一共展示了ByteBufferWithInfo.position方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: 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));
}
示例2: printBuffer
import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; //导入方法依赖的package包/类
public static void printBuffer(ByteBufferWithInfo bbwi) {
System.out.println("+++++++ Output Buffer ++++++++");
System.out.println();
System.out.println("Current position: " + bbwi.position());
System.out.println("Total length : " + bbwi.buflen);
System.out.println();
char[] charBuf = new char[16];
try {
for (int i = 0; i < bbwi.position(); i += 16) {
int j = 0;
// For every 16 bytes, there is one line
// of output. First, the hex output of
// the 16 bytes with each byte separated
// by a space.
while (j < 16 && j + i < bbwi.position()) {
int k = bbwi.byteBuffer.get(i + j);
if (k < 0)
k = 256 + k;
String hex = Integer.toHexString(k);
if (hex.length() == 1)
hex = "0" + hex;
System.out.print(hex + " ");
j++;
}
// Add any extra spaces to align the
// text column in case we didn't end
// at 16
while (j < 16) {
System.out.print(" ");
j++;
}
// Now output the ASCII equivalents. Non-ASCII
// characters are shown as periods.
int x = 0;
while (x < 16 && x + i < bbwi.position()) {
if (ORBUtility.isPrintable((char)bbwi.byteBuffer.get(i + x)))
charBuf[x] = (char)bbwi.byteBuffer.get(i + x);
else
charBuf[x] = '.';
x++;
}
System.out.println(new String(charBuf, 0, x));
}
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("++++++++++++++++++++++++++++++");
}