Inheritance: withSIX.Steam.Core.Services.ArmaServerInfoModel
コード例 #1
0
        public async Task <ArmaServerInfo> GetServerInfoInclDetails1(ServerFilterWrap filter, CancellationToken ct)
        {
            var obs = ServerResponses
                      .Take(1)
                      .TakeUntil(RefreshComplete.Void()
                                 .Merge(ServerFailedToRespond.Void())
                                 .Merge(Observable.Timer(TimeSpan.FromSeconds(5))
                                        .Void())).FirstAsync().ToTask(ct);

            await GetServerInfoInclDetails(filter).ConfigureAwait(false);

            var r = await obs;

            return(ArmaServerInfo.FromWrap(r.ServerIndex, r.ServerInfo));
        }
コード例 #2
0
        public async Task <IObservable <ArmaServerInfo> > GetServers(CancellationToken ct, ServerFilterWrap filter)
        {
            var dsp = new CompositeDisposable();
            // Apparently we get null ServerInfo (not even endpoints :S)
            var obs = ServerResponses
                      .TakeUntil(RefreshComplete)
                      .Select(x => x.ServerInfo == null ? null : ArmaServerInfo.FromWrap(x.ServerIndex, x.ServerInfo))
                      .Where(x => x != null)
                      .Replay();

            dsp.Add(obs.Connect());
            obs.Subscribe(_ => { }, x => dsp.Dispose(), dsp.Dispose, ct);
            ct.Register(dsp.Dispose);
            await GetServerInfo(filter).ConfigureAwait(false);

            return(obs);
        }
コード例 #3
0
 public ArmaServer(ArmaServerInfo info, ServerInfoRulesFetcher fetcher) {
     Info = info;
     _fetcher = fetcher;
     _filter = ServerFilterBuilder.Build().FilterByAddress(info.ConnectionEndPoint).GetServerFilterWrap();
 }
コード例 #4
0
        private async Task <ArmaServer> ToServerInfo(ServerRespondedEventArgs x)
        {
            var info = ArmaServerInfo.FromWrap(x.ServerIndex, x.ServerInfo);

            return(new ArmaServer(info, await _fetcherFact(info.QueryEndPoint).ConfigureAwait(false)));
        }
コード例 #5
0
 public ArmaServer(ArmaServerInfo info, ServerInfoRulesFetcher fetcher)
 {
     Info     = info;
     _fetcher = fetcher;
     _filter  = ServerFilterBuilder.Build().FilterByAddress(info.ConnectionEndPoint).GetServerFilterWrap();
 }