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);
}
}
}