No puede seleccionar más de 25 temas
Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
|
- using System;
-
- namespace MQTTnet.Core.Serializer
- {
- public sealed class ByteReader
- {
- private readonly int _source;
- private int _index;
-
- public ByteReader(int source)
- {
- _source = source;
- }
-
- public bool Read()
- {
- if (_index >= 8)
- {
- throw new InvalidOperationException("End of byte reached.");
- }
-
- var result = ((1 << _index) & _source) > 0;
- _index++;
- return result;
- }
-
- public byte Read(int count)
- {
- if (_index + count > 8)
- {
- throw new InvalidOperationException("End of byte will be reached.");
- }
-
- var result = 0;
- for (var i = 0; i < count; i++)
- {
- if (((1 << _index) & _source) > 0)
- {
- result |= 1 << i;
- }
-
- _index++;
- }
-
- return (byte)result;
- }
- }
- }
|