コード例 #1
0
        private async void FetchStore(object state)
        {
            var initializeRequest  = new KHttpRequest(_apiKey);
            var httpClient         = new KHttpClientWrapper();
            var serverInitResponse = await httpClient.Get <KServerInitializeResponseDto>(initializeRequest);

            _evaluator = KEvaluator.Create(KInMemoryStore.FromServer(serverInitResponse));
        }
コード例 #2
0
        protected override async Task RunAsync(CancellationToken cancellationToken)
        {
            var fmt = new KProtobufMessageFormat <KNodeId256>();
            var slf = KNodeId <KNodeId256> .Create();

            var ink = new KInvokerPolicy <KNodeId256>(slf, logger: logger);
            var rtr = new KFixedTableRouter <KNodeId256>(slf, logger: logger);
            var kad = new KEngine <KNodeId256>(rtr, ink, lup, str, logger: logger);
            var lup = new KNodeLookup <KNodeId256>(kad, logger: logger);
            var str = new KInMemoryStore <KNodeId256>(rtr, ink, lup, TimeSpan.FromMinutes(1), logger: logger);
            var pub = new KInMemoryPublisher <KNodeId256>(ink, lup, str, logger: logger);
            var udp = new KUdpProtocol <KNodeId256>(2848441, kad, fmt, KIpEndpoint.Any, logger);
            var mcd = new KUdpMulticastDiscovery <KNodeId256>(2848441, kad, fmt, logger: logger);

            await udp.StartAsync(cancellationToken);

            await str.StartAsync(cancellationToken);

            await pub.StartAsync(cancellationToken);

            await mcd.StartAsync(cancellationToken);

            await kad.StartAsync(cancellationToken);

            while (cancellationToken.IsCancellationRequested == false)
            {
                await Task.Delay(TimeSpan.FromSeconds(1));
            }

            await kad.StopAsync();

            await mcd.StopAsync();

            await pub.StopAsync();

            await str.StopAsync();

            await udp.StopAsync();
        }
コード例 #3
0
 public KClientService(string apiKey, int pollingInterval = 60)
 {
     _apiKey    = apiKey;
     _timer     = new Timer(FetchStore, null, TimeSpan.Zero, TimeSpan.FromSeconds(pollingInterval));
     _evaluator = KEvaluator.Create(KInMemoryStore.Empty());
 }