public void Flush(H2NBinaryWriter writer, ulong stage, byte flags, bool header, N2HBinaryReader reader, ushort size)
{
Debug.WriteLine("sent:{0} stage {1}",Id, stage);
if (_stageAck == 0 && header)
{
flags |= MESSAGE_HEADER;
}
if (size == 0) flags |= MESSAGE_ABANDONMENT;
if (Closed && _messages.Count == 1) flags |= MESSAGE_END;
writer.Write(flags);
if (header)
{
writer.Write7BitLongValue(Id);
writer.Write7BitLongValue(stage);
writer.Write7BitLongValue(stage - _stageAck);
if (_stageAck == 0)
{
writer.WriteString8(Signature);
if (FlowId > 0)
{
writer.Write((byte)(1 + H2NBinaryWriter.Get7BitValueSize(FlowId)));
writer.Write((byte)0x0a);
writer.Write7BitLongValue(FlowId);
}
writer.Write((byte)0);
}
}
if (size > 0)
{
reader.BaseStream.CopyPartTo(writer.BaseStream,size);
}
}
public void Acknowledgment(N2HBinaryReader reader)