private void writeMsgSeqMap(HermesPrimitiveCodec codec, ConcurrentDictionary<Triple<Tpp, String, Boolean>, List<AckContext>> msgSeqMap) { if (msgSeqMap == null) { codec.WriteInt(0); } else { codec.WriteInt(msgSeqMap.Count); foreach (Triple<Tpp, String, Boolean> tppgr in msgSeqMap.Keys) { Tpp tpp = tppgr.First; codec.WriteString(tpp.Topic); codec.WriteInt(tpp.Partition); codec.WriteInt(tpp.Priority ? 0 : 1); codec.WriteString(tppgr.Middle); codec.WriteBoolean(tppgr.Last); } foreach (Triple<Tpp, String, Boolean> tppgr in msgSeqMap.Keys) { List<AckContext> contexts = msgSeqMap[tppgr]; if (contexts == null || contexts.Count == 0) { codec.WriteInt(0); } else { codec.WriteInt(contexts.Count); foreach (AckContext context in contexts) { codec.WriteLong(context.MsgSeq); codec.WriteInt(context.RemainingRetries); codec.WriteLong(context.OnMessageStartTimeMillis); codec.WriteLong(context.OnMessageEndTimeMillis); } } } } }
protected override void ToBytes0(IoBuffer buf) { var codec = new HermesPrimitiveCodec(buf); codec.WriteBoolean(Success); }