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);
                }
            }
        }
Exemplo n.º 4
0
    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));
        }