using System.Collections.Generic; using Chartboost.Logging; namespace Chartboost { /// /// Utility class utilized to resolve awaitable proxies for C based wrappers. /// public static class AwaitableProxies { private static readonly Dictionary WaitingProxies = new(); public static (Later proxy, int uniqueId) SetupProxy() { var proxy = new Later(); var uniqueId = proxy.GetHashCode(); WaitingProxies[uniqueId] = proxy; LogController.Log($"Added callback proxy for: {uniqueId}", LogLevel.Debug); return (proxy, uniqueId); } public static void ResolveCallbackProxy(int uniqueId, TResponse response) { if (!WaitingProxies.TryGetValue(uniqueId, out var proxy)) { LogController.Log($"Unable to find callback proxy for: {uniqueId} of type: {typeof(TResponse).Name}", LogLevel.Debug); return; } if (proxy is Later later) later.Complete(response); WaitingProxies.Remove(uniqueId); } } }