public SerializedPayload NewUnsubscribeTopic(string topicName) { var payload = new UnsubscribeTopic { Id = Guid.NewGuid(), TopicName = topicName }; return(_serializer.Serialize(payload)); }
public void Serialization_UnsubscribeTopic_MatchResults() { var unsubscribeQueue = new UnsubscribeTopic { Id = Guid.NewGuid(), TopicName = RandomGenerator.GenerateString(10) }; var b = _serializer.Serialize(unsubscribeQueue); var result = _deserializer.ToUnsubscribeTopic(b.DataWithoutSize); Assert.Equal(unsubscribeQueue.Id, result.Id); Assert.Equal(unsubscribeQueue.TopicName, result.TopicName); }
public SerializedPayload Serialize(UnsubscribeTopic unSubscribeTopic) { var binaryWriter = ObjectPool.Shared.Rent <BinaryProtocolWriter>(); try { return(binaryWriter .WriteType(PayloadType.UnsubscribeTopic) .WriteId(unSubscribeTopic.Id) .WriteStr(unSubscribeTopic.TopicName) .ToSerializedPayload()); } finally { ObjectPool.Shared.Return(binaryWriter); } }
private void OnUnsubscribeTopic(Guid clientId, UnsubscribeTopic unsubscribeTopic) { _clientStore.TryGet(clientId, out var client); if (client is null) { Log.Warning($"The client for id {clientId} was not found"); SendReceivePayloadError(clientId, unsubscribeTopic.Id, "Internal error"); return; } if (_topicStore.TryGetValue(unsubscribeTopic.TopicName, out var queue)) { queue.ClientUnsubscribed(client); SendReceivedPayloadOk(clientId, unsubscribeTopic.Id); } else { SendReceivePayloadError(clientId, unsubscribeTopic.Id, "Queue not found"); } }