[C#]ResetToInd
63 lines
public sealed partial class InstrumentEntriesGroup
public sealed partial class InstrumentEntriesGroup
{
{
private readonly GroupSizeEncoding _dimensions = new GroupSizeEncoding();
private readonly GroupSizeEncoding _dimensions = new GroupSizeEncoding();
private RegisterInstrumentRequest _parentMessage;
private RegisterInstrumentRequest _parentMessage;
private DirectBuffer _buffer;
private DirectBuffer _buffer;
private int _blockLength;
private int _blockLength;
private int _actingVersion;
private int _actingVersion;
private int _count;
private int _count;
private int _index;
private int _index;
private int _offset;
private int _offset;
public void WrapForDecode(RegisterInstrumentRequest parentMessage, DirectBuffer buffer, int actingVersion)
public void WrapForDecode(RegisterInstrumentRequest parentMessage, DirectBuffer buffer, int actingVersion)
{
{
_parentMessage = parentMessage;
_parentMessage = parentMessage;
_buffer = buffer;
_buffer = buffer;
_dimensions.Wrap(buffer, parentMessage.Limit, actingVersion);
_dimensions.Wrap(buffer, parentMessage.Limit, actingVersion);
_blockLength = _dimensions.BlockLength;
_blockLength = _dimensions.BlockLength;
_count = (int) _dimensions.NumInGroup;
_count = (int) _dimensions.NumInGroup;
_actingVersion = actingVersion;
_actingVersion = actingVersion;
_index = -1;
_index = 0;
_parentMessage.Limit = parentMessage.Limit + SbeHeaderSize;
_parentMessage.Limit = parentMessage.Limit + SbeHeaderSize;
}
}
public void WrapForEncode(RegisterInstrumentRequest parentMessage, DirectBuffer buffer, int count)
public void WrapForEncode(RegisterInstrumentRequest parentMessage, DirectBuffer buffer, int count)
{
{
if ((uint) count > 65534)
if ((uint) count > 65534)
{
{
ThrowHelper.ThrowCountOutOfRangeException(count);
ThrowHelper.ThrowCountOutOfRangeException(count);
}
}
_parentMessage = parentMessage;
_parentMessage = parentMessage;
_buffer = buffer;
_buffer = buffer;
_dimensions.Wrap(buffer, parentMessage.Limit, _actingVersion);
_dimensions.Wrap(buffer, parentMessage.Limit, _actingVersion);
_dimensions.BlockLength = (ushort)8;
_dimensions.BlockLength = SbeBlockLength;
_dimensions.NumInGroup = (ushort)count;
_dimensions.NumInGroup = (ushort) count;
_index = -1;
_index = 0;
_count = count;
_count = count;
_blockLength = 8;
_blockLength = SbeBlockLength;
_actingVersion = SchemaVersion;
_actingVersion = SchemaVersion;
parentMessage.Limit = parentMessage.Limit + SbeHeaderSize;
parentMessage.Limit = parentMessage.Limit + SbeHeaderSize;
}
}
public const int SbeBlockLength = 8;
public const int SbeBlockLength = 8;
public const int SbeHeaderSize = 4;
public const int SbeHeaderSize = 4;
public int ActingBlockLength { get { return _blockLength; } }
public int ActingBlockLength { get { return _blockLength; } }
public int Count { get { return _count; } }
public int Count { get { return _count; } }
public bool HasNext { get { return (_index + 1) < _count; } }
public bool HasNext { get { return _index < _count; } }
public int ResetCountToIndex()
{
_count = _index;
_dimensions.NumInGroup = (ushort) _count;
return _count;
}
public InstrumentEntriesGroup Next()
public InstrumentEntriesGroup Next()
{
{
if (_index + 1 >= _count)
if (_index >= _count)
{
{
ThrowHelper.ThrowInvalidOperationException();
ThrowHelper.ThrowInvalidOperationException();
}
}
_offset = _parentMessage.Limit;
_offset = _parentMessage.Limit;
_parentMessage.Limit = _offset + _blockLength;
_parentMessage.Limit = _offset + _blockLength;
++_index;
++_index;
return this;
return this;
}
}