public SenderMessageKey RemoveSenderMessageKey(uint iteration) { LinkedList <StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey> keys = new LinkedList <StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey>(_senderKeyStateStructure.SenderMessageKeysList); IEnumerator <StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey> iterator = keys.GetEnumerator(); // iterator(); StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey result = null; while (iterator.MoveNext()) // hastNext { StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey senderMessageKey = iterator.Current; // next(); if (senderMessageKey.Iteration == iteration) //senderMessageKey.getIteration() { result = senderMessageKey; keys.Remove(senderMessageKey); //iterator.remove(); break; } } _senderKeyStateStructure = _senderKeyStateStructure.ToBuilder() .ClearSenderMessageKeys() //.AddAllSenderMessageKeys(keys) .AddRangeSenderMessageKeys(keys) .Build(); if (result != null) { return(new SenderMessageKey(result.Iteration, result.Seed.ToByteArray())); } else { return(null); } }
public void AddSenderMessageKey(SenderMessageKey senderMessageKey) { StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey senderMessageKeyStructure = StorageProtos.SenderKeyStateStructure.Types.SenderMessageKey.CreateBuilder() .SetIteration(senderMessageKey.GetIteration()) .SetSeed(ByteString.CopyFrom(senderMessageKey.GetSeed())) .Build(); StorageProtos.SenderKeyStateStructure.Builder builder = _senderKeyStateStructure.ToBuilder(); builder.AddSenderMessageKeys(senderMessageKeyStructure); if (builder.SenderMessageKeysList.Count > MaxMessageKeys) { builder.SenderMessageKeysList.RemoveAt(0); } _senderKeyStateStructure = builder.Build(); }