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


C# ByteBuffer.HasRemaining方法代码示例

本文整理汇总了C#中ByteBuffer.HasRemaining方法的典型用法代码示例。如果您正苦于以下问题:C# ByteBuffer.HasRemaining方法的具体用法?C# ByteBuffer.HasRemaining怎么用?C# ByteBuffer.HasRemaining使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ByteBuffer的用法示例。


在下文中一共展示了ByteBuffer.HasRemaining方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: OnData

 public virtual void OnData(ByteBuffer buffer)
 {
     while (buffer.HasRemaining())
     {
         var complete = _message.ReadFrom(buffer);
         if (!complete)
         {
             return;
         }
         //MESSAGE IS COMPLETE HERE
         if (_message.IsFlagSet(ClientMessage.BeginAndEndFlags))
         {
             //HANDLE-MESSAGE
             HandleMessage(_message);
             _message = ClientMessage.Create();
             continue;
         }
         if (_message.IsFlagSet(ClientMessage.BeginFlag))
         {
             // first fragment
             var builder = new BufferBuilder();
             _builderBySessionIdMap.Add(_message.GetCorrelationId(), builder);
             builder.Append(_message.GetBuffer(), 0, _message.GetFrameLength());
         }
         else
         {
             var builder = _builderBySessionIdMap[_message.GetCorrelationId()];
             if (builder.Position() == 0)
             {
                 throw new InvalidOperationException();
             }
             builder.Append(_message.GetBuffer(), _message.GetDataOffset(),
                 _message.GetFrameLength() - _message.GetDataOffset());
             if (_message.IsFlagSet(ClientMessage.EndFlag))
             {
                 var msgLength = builder.Position();
                 var cm = ClientMessage.CreateForDecode(builder.Buffer(), 0);
                 cm.SetFrameLength(msgLength);
                 //HANDLE-MESSAGE
                 HandleMessage(cm);
                 _builderBySessionIdMap.Remove(_message.GetCorrelationId());
             }
         }
         _message = ClientMessage.Create();
     }
 }
开发者ID:ihsandemir,项目名称:hazelcast-csharp-client,代码行数:46,代码来源:ClientMessageBuilder.cs

示例2: ReadFrom

 public virtual bool ReadFrom(ByteBuffer source)
 {
     if (Index() == 0)
     {
         InitFrameSize(source);
     }
     while (Index() >= Bits.IntSizeInBytes && source.HasRemaining() && !IsComplete())
     {
         Accumulate(source, GetFrameLength() - Index());
     }
     return IsComplete();
 }
开发者ID:ihsandemir,项目名称:hazelcast-csharp-client,代码行数:12,代码来源:ClientMessage.cs


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