public void RequestAppTicket(uint appId) { if (AppTickets.ContainsKey(appId) || bAborted) { return; } Action <SteamApps.AppOwnershipTicketCallback, JobID> cbMethod = (appTicket, jobId) => { if (appTicket.Result != EResult.OK) { Console.WriteLine("Unable to get appticket for {0}: {1}", appTicket.AppID, appTicket.Result); Abort(); } else { Console.WriteLine("Got appticket for {0}!", appTicket.AppID); AppTickets[appTicket.AppID] = appTicket.Ticket; } }; using (JobCallback <SteamApps.AppOwnershipTicketCallback> appTicketCallback = new JobCallback <SteamApps.AppOwnershipTicketCallback>(cbMethod, callbacks, steamApps.GetAppOwnershipTicket(appId))) { do { WaitForCallbacks(); }while (!appTicketCallback.Completed && !bAborted); } }
public void RequestAppTicket(uint appId) { if (AppTickets.ContainsKey(appId) || bAborted) { return; } if (!authenticatedUser) { AppTickets[appId] = null; return; } bool completed = false; Action <SteamApps.AppOwnershipTicketCallback> cbMethod = (appTicket) => { completed = true; if (appTicket.Result != EResult.OK) { Console.WriteLine("Unable to get appticket for {0}: {1}", appTicket.AppID, appTicket.Result); Abort(); } else { Console.WriteLine("Got appticket for {0}!", appTicket.AppID); AppTickets[appTicket.AppID] = appTicket.Ticket; } }; WaitUntilCallback(() => { callbacks.Subscribe(steamApps.GetAppOwnershipTicket(appId), cbMethod); }, () => { return(completed); }); }
public async Task <byte[]> RequestAppTicket(uint appId) { if (!AppTickets.ContainsKey(appId)) { AppTickets[appId] = (await Apps.GetAppOwnershipTicket(appId)).Ticket; } return(AppTickets[appId]); }
public Task <bool> RequestAppTicket(uint appId) { var tsc = new TaskCompletionSource <bool>(); if (AppTickets.ContainsKey(appId) || bAborted) { tsc.SetResult(true); return(tsc.Task); } else if (!authenticatedUser) { tsc.SetResult(true); AppTickets[appId] = null; return(tsc.Task); } else { IDisposable subscription = null; Action <SteamApps.AppOwnershipTicketCallback> cbMethod = (appTicket) => { subscription.Dispose(); if (appTicket.Result != EResult.OK) { DebugLog.WriteLine("Steam3Session", "Unable to get appticket for " + appTicket.AppID + ": " + appTicket.Result); Abort(); } else { DebugLog.WriteLine("Steam3Session", "Got appticket for " + appTicket.AppID); AppTickets[appTicket.AppID] = appTicket.Ticket; } tsc.SetResult(true); }; subscription = callbacks.Subscribe(steamApps.GetAppOwnershipTicket(appId), cbMethod); return(tsc.Task); } }