本文整理汇总了C#中BufferManager类的典型用法代码示例。如果您正苦于以下问题:C#BufferManager类的具体用法?C#BufferManager怎么用?C#BufferManager使用的例子?这里精选的类代码示例或许可以为您提供帮助。
示例1:AppendPayloadAsHeader
publicstaticArraySegment
AppendPayloadAsHeader(ArraySegmentbuffer,ArraySegmentpayload,BufferManagerbufferManager)
{
//Wewillinsertatthebeginningofthebufferjustbeforethedictionaryoranymessagecontent
intposToInsert=buffer.Offset;
intframeSize=PayloadMarkLength+PayloadLengthByteCount+payload.Count;
byte[]newBuffer=bufferManager.TakeBuffer(buffer.Count+frameSize+buffer.Offset);
intafterContent=posToInsert+frameSize;
//Insertourcustommark0xBE
intinsertPoint=posToInsert;
newBuffer[insertPoint++]=PayloadMark;
//Insertthelengthofthepayload
byte[]lenInBytes=BitConverter.GetBytes(payload.Count);
newBuffer[insertPoint++]=lenInBytes[0];
newBuffer[insertPoint++]=lenInBytes[1];
newBuffer[insertPoint++]=lenInBytes[2];
newBuffer[insertPoint++]=lenInBytes[3];
Buffer.BlockCopy(payload.Array,payload.Offset,newBuffer,insertPoint,payload.Count);
//Copyfromoldtonewarray
Buffer.BlockCopy(buffer.Array,0,newBuffer,0,posToInsert);//Copyuntilthesubheaderpointer
Buffer.BlockCopy(buffer.Array,posToInsert,newBuffer,afterContent,buffer.Count-posToInsert+buffer.Offset);//Nowcopytherest
returnnewArraySegment(newBuffer,buffer.Offset,buffer.Count+frameSize);
}
原文链接:http://www.jxszl.com/biancheng/C/556595.html