Exemple #1
0
        private void InvocationPattern(long requestId, long registrationId, InvocationDetails details, Func <IWampRpcOperation, IWampRawRpcOperationRouterCallback, InvocationDetails, IWampCancellableInvocation> invocationAction)
        {
            IWampRpcOperation operation = TryGetOperation(registrationId);

            if (operation != null)
            {
                IWampRawRpcOperationRouterCallback callback = GetCallback(requestId);

                InvocationDetails modifiedDetails = new InvocationDetails(details)
                {
                    Procedure = details.Procedure ?? operation.Procedure
                };

                IWampCancellableInvocation invocation = invocationAction(operation, callback, modifiedDetails);

                if (invocation != null)
                {
                    mInvocations[requestId] = new InvocationData(registrationId, invocation);

                    lock (mLock)
                    {
                        mRegistrationsToInvocations.Add(registrationId, requestId);
                    }
                }
            }
        }
        private IWampCancellableInvocation InvokePattern(Func <MatchRpcOperationCatalog, IWampCancellableInvocation> invokeAction, string procedure)
        {
            foreach (MatchRpcOperationCatalog catalog in mInnerCatalogs)
            {
                IWampCancellableInvocation result = invokeAction(catalog);

                if (result != null)
                {
                    return(result);
                }
            }

            WampRpcThrowHelper.NoProcedureRegistered(procedure);

            return(null);
        }
Exemple #3
0
 public InvocationData(long registrationId, IWampCancellableInvocation cancellation)
 {
     Cancellation    = cancellation;
     mRegistrationId = registrationId;
 }