コード例 #1
0
        void InitializePayloadHandlers()
        {
            payloadHandlers = new Dictionary <GatewayOPCode, PayloadCallback>();

            Type taskType                = typeof(Task);
            Type gatewaySocketType       = typeof(GatewaySocket);
            Type payloadSynchronousType  = typeof(PayloadSynchronousCallback);
            Type payloadAsynchronousType = typeof(PayloadAsynchronousCallback);

            foreach (MethodInfo method in gatewaySocketType.GetTypeInfo().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic))
            {
                PayloadAttribute attr = method.GetCustomAttribute <PayloadAttribute>();
                if (attr != null)
                {
                    PayloadCallback payloadCallback;
                    if (method.ReturnType == taskType)
                    {
                        Delegate callback = method.CreateDelegate(payloadAsynchronousType, this);
                        payloadCallback = new PayloadCallback((PayloadAsynchronousCallback)callback);
                    }
                    else
                    {
                        Delegate callback = method.CreateDelegate(payloadSynchronousType, this);
                        payloadCallback = new PayloadCallback((PayloadSynchronousCallback)callback);
                    }

                    payloadHandlers[attr.OPCode] = payloadCallback;
                }
            }
        }
コード例 #2
0
 public Task AcceptConnectionAsync(String p0, PayloadCallback p1)
 {
     return(AcceptConnection(p0, p1).AsAsync());
 }
コード例 #3
0
 public static Task AcceptConnectionAsync (this IConnectionsClient self, String p0, PayloadCallback p1)
 {
     return self.AcceptConnection (p0, p1).AsAsync ();
 }
コード例 #4
0
 public static async Task <Statuses> AcceptConnectionAsync(this IConnections api, GoogleApiClient apiClient, string endpointId, PayloadCallback payloadCallback)
 {
     return((await api.AcceptConnection(apiClient, endpointId, payloadCallback)).JavaCast <Statuses>());
 }