public void TestToAddress() { var publisherAvailability = new PublisherAvailability("test-dir", "1.2.3.4", 111); Assert.Equal(Address.From(Host.Of("1.2.3.4"), 111, AddressType.Main), publisherAvailability.ToAddress()); Assert.Equal(Address.From(Host.Of("1.2.3.4"), 111, AddressType.Op), publisherAvailability.ToAddress(AddressType.Op)); }
public void TestValidity() { var publisherAvailability = new PublisherAvailability("test-dir", "1.2.3.4", 111); Assert.True(publisherAvailability.IsValid); Assert.False(PublisherAvailability.From("blah").IsValid); Assert.True(PublisherAvailability.From(textMessage).IsValid); }
//==================================== // internal implementation //==================================== private void ManageDirectoryChannel(string maybePublisherAvailability) { var publisherAvailability = PublisherAvailability.From(maybePublisherAvailability); if (publisherAvailability.IsValid) { if (!publisherAvailability.Equals(_directory !)) { _directory = publisherAvailability; _directoryChannel?.Close(); _directoryChannel = new SocketChannelWriter(_testAddress ?? _directory.ToAddress(), Logger); } } }
private void ManageDirectoryChannel(string maybePublisherAvailability) { var publisherAvailability = PublisherAvailability.From(maybePublisherAvailability); if (publisherAvailability.IsValid) { if (!publisherAvailability.Equals(_directory !)) { Logger.Debug($"DIRECTORY CLIENT [{_id}]: Initializing socket..."); _directory = publisherAvailability; PrepareDirectoryChannel(); } } }
private RawMessage AvailabilityMessage() { var message = new PublisherAvailability( _name, GetHostName(_publisherAddress.Address), _publisherAddress.Port).ToString(); var buffer = new MemoryStream(message.Length); var messageBytes = Converters.TextToBytes(message); buffer.Write(messageBytes, 0, messageBytes.Length); // TODO: Can be done async buffer.Flip(); return(RawMessage.ReadFromWithoutHeader(buffer)); }
public void TestMessage() { var publisherAvailability = new PublisherAvailability("test-dir", "1.2.3.4", 111); Assert.Equal(publisherAvailability, PublisherAvailability.From(textMessage)); }