/// <summary> /// </summary> /// <param name="api">Takes control over to ease disposal</param> /// <param name="fetcherFact"></param> public ServerBrowser(LockedWrapper<MatchmakingServiceWrap> api, Func<IPEndPoint, Task<ServerInfoRulesFetcher>> fetcherFact) : base(api) { _fetcherFact = fetcherFact; }
public ServerInfoFetcher(LockedWrapper<MatchmakingServiceWrap> a) { _api = a; ServerResponses = Observable.FromEvent<EventHandler<ServerRespondedEventArgs>, ServerRespondedEventArgs>(handler => { EventHandler<ServerRespondedEventArgs> evtHandler = (sender, e) => handler(e); return evtHandler; }, evtHandler => _api.DoWithoutLock(api => api.ServerResponded += evtHandler), evtHandler => _api.DoWithoutLock(api => api.ServerResponded -= evtHandler), _api.Scheduler); RefreshComplete = Observable.FromEvent<EventHandler<RefreshCompletedEventArgs>, RefreshCompletedEventArgs>(handler => { EventHandler<RefreshCompletedEventArgs> evtHandler = (sender, e) => handler(e); return evtHandler; }, evtHandler => _api.DoWithoutLock(api => api.RefreshComplete += evtHandler), evtHandler => _api.DoWithoutLock(api => api.RefreshComplete -= evtHandler), _api.Scheduler); ServerFailedToRespond = Observable.FromEvent<EventHandler<ServerFailedToRespondEventArgs>, ServerFailedToRespondEventArgs>( handler => { EventHandler<ServerFailedToRespondEventArgs> evtHandler = (sender, e) => handler(e); return evtHandler; }, evtHandler => _api.DoWithoutLock(api => api.ServerFailedToRespond += evtHandler), evtHandler => _api.DoWithoutLock(api => api.ServerFailedToRespond -= evtHandler), _api.Scheduler); }
/// <summary> /// /// </summary> /// <param name="ep"></param> /// <param name="s">Takes control over to ease disposal</param> /// <param name="a">Takes control over to ease disposal</param> public ServerInfoRulesFetcher(IPEndPoint ep, LockedWrapper<ServerRulesServiceWrap> s, LockedWrapper<MatchmakingServiceWrap> a) : base(a) { _ep = ep; _srs = s; RulesRefreshComplete = Observable .FromEvent<EventHandler<ServerRulesRefreshCompletedEventArgs>, ServerRulesRefreshCompletedEventArgs> (handler => { EventHandler<ServerRulesRefreshCompletedEventArgs> evtHandler = (sender, e) => handler(e); return evtHandler; }, evtHandler => _srs.DoWithoutLock(srs => srs.RefreshComplete += evtHandler), evtHandler => _srs.DoWithoutLock(srs => srs.RefreshComplete -= evtHandler), _srs.Scheduler); RulesFailedToRespond = Observable .FromEvent <EventHandler<ServerRulesFailedToRespondEventArgs>, ServerRulesFailedToRespondEventArgs> (handler => { EventHandler<ServerRulesFailedToRespondEventArgs> evtHandler = (sender, e) => handler(e); return evtHandler; }, evtHandler => _srs.DoWithoutLock(srs => srs.ServerRulesFailedToRespond += evtHandler), evtHandler => _srs.DoWithoutLock(srs => srs.ServerRulesFailedToRespond -= evtHandler), _srs.Scheduler); }
public SteamApi(IScheduler s) { _steamApi = new LockedWrapper<SteamAPIWrap>(new SteamAPIWrap(), s); }