本文整理匯總了C#中System.ByteBuffer.Rewind方法的典型用法代碼示例。如果您正苦於以下問題:C# ByteBuffer.Rewind方法的具體用法?C# ByteBuffer.Rewind怎麽用?C# ByteBuffer.Rewind使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.ByteBuffer
的用法示例。
在下文中一共展示了ByteBuffer.Rewind方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: relGet
private static void relGet(ByteBuffer b, int start)
{
int n = b.Remaining;
byte v;
for (int i = start; i < n; i++)
ck(b, (long)b.Get(), (long)((byte)Ic(i)));
b.Rewind();
}
示例2: absGet
private static void absGet(ByteBuffer b)
{
int n = b.Capacity;
byte v;
for (int i = 0; i < n; i++)
ck(b, (long)b.Get(), (long)((byte)Ic(i)));
b.Rewind();
}
示例3: ParseBody
protected override void ParseBody(ByteBuffer buf)
{
// 判斷搜索是否已經結束
if (!buf.HasRemaining() || buf.Get() == 0x2D && buf.Get() == 0x31)
{
Finished = true;
return;
}
buf.Rewind();
// 隻要還有數據就繼續讀取下一個friend結構
Users = new List<UserInfo>();
while (buf.HasRemaining())
{
UserInfo ui = new UserInfo();
ui.Read(buf);
// 添加到list
Users.Add(ui);
}
}
示例4: read
/**
* Reads GIF image from byte array
*
* @param data containing GIF file.
* @return read status code (0 = no errors)
*/
public int read(byte[] data)
{
init();
if (data != null)
{
//Initiliaze the raw data buffer
rawData = ByteBuffer.Wrap(data);
rawData.Rewind();
rawData.Order(ByteOrder.LittleEndian);
readHeader();
if (!err())
{
readContents();
if (frameCount < 0)
{
status = STATUS_FORMAT_ERROR;
}
}
}
else {
status = STATUS_OPEN_ERROR;
}
return status;
}
示例5: test
public static void test(int level, ByteBuffer b, bool direct)
{
Show(level, b);
if (direct != b.IsDirect)
fail("Wrong direction", b);
// Gets and puts
relPut(b);
relGet(b);
absGet(b);
bulkGet(b);
absPut(b);
relGet(b);
absGet(b);
bulkGet(b);
bulkPutArray(b);
relGet(b);
bulkPutBuffer(b);
relGet(b);
// Compact
relPut(b);
b.Position = (13);
b.Compact();
b.Flip();
relGet(b, 13);
// Exceptions
relPut(b);
b.Limit = (b.Capacity / 2);
b.Position = (b.Limit);
tryCatch(b, typeof(BufferUnderflowException), () =>
{
b.Get();
});
tryCatch(b, typeof(BufferOverflowException), () =>
{
b.Put((byte)42);
});
// The index must be non-negative and lesss than the buffer's limit.
tryCatch(b, typeof(IndexOutOfRangeException), () =>
{
b.Get(b.Limit);
});
tryCatch(b, typeof(IndexOutOfRangeException), () =>
{
b.Get(-1);
});
tryCatch(b, typeof(IndexOutOfRangeException), () =>
{
b.Put(b.Limit, (byte)42);
});
tryCatch(b, typeof(InvalidMarkException), () =>
{
b.Position = (0);
b.Mark();
b.Compact();
b.Reset();
});
// Values
b.Clear();
b.Put((byte)0);
b.Put(unchecked((byte)-1));
b.Put((byte)1);
b.Put(unchecked((byte)sbyte.MaxValue));
b.Put(unchecked((byte)sbyte.MinValue));
byte v;
b.Flip();
ck(b, b.Get(), 0);
ck(b, b.Get(), unchecked((byte)-1));
ck(b, b.Get(), 1);
ck(b, b.Get(), unchecked((byte)sbyte.MaxValue));
ck(b, b.Get(), unchecked((byte)sbyte.MinValue));
// Comparison
b.Rewind();
ByteBuffer b2 = Lucene.Net.Support.ByteBuffer.Allocate(b.Capacity);
b2.Put(b);
b2.Flip();
b.Position = (2);
b2.Position = (2);
if (!b.Equals(b2))
{
//.........這裏部分代碼省略.........