private void InnerCall(IWampCaller caller, Action callAction, long requestId, CallOptions options, string procedure) { InnerAction(caller, authorizer => authorizer.CanCall(options, procedure), callAction, exception => caller.CallError(requestId, exception)); }
public WampRpcOperationCallback(IWampCaller caller, long requestId) { mCaller = caller; mRequestId = requestId; mMonitor = caller as IWampConnectionMonitor; mMonitor.ConnectionClosed += OnConnectionClosed; }
public WampRpcOperationCallback(IWampCaller caller, long requestId) { Caller = caller; Session = ((IWampClientProperties)caller).Session; RequestId = requestId; mMonitor = caller as IWampConnectionMonitor; mMonitor.ConnectionClosed += OnConnectionClosed; }
public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure) { CallPattern(caller, requestId, options, procedure, (invoker, callback, invocationOptions) => invoker.Invoke(callback, mFormatter, invocationOptions, procedure)); }
private static IWampCaller GetCaller(IWampRawRpcOperationRouterCallback callback) { IWampCaller caller = null; if (callback is WampRpcOperationCallback operationCallback) { caller = operationCallback.Caller; } return(caller); }
public override void Call(IWampCaller caller, long requestId, CallOptions options, string procedure, TMessage[] arguments) { Action callAction = () => base.Call(caller, requestId, options, procedure, arguments); InnerCall(caller, callAction, requestId, options, procedure); }
public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure, TMessage[] arguments, IDictionary <string, TMessage> argumentsKeywords) { CallPattern(caller, requestId, options, procedure, (invoker, callback, invocationOptions) => invoker.Invoke(callback, mFormatter, invocationOptions, procedure, arguments, argumentsKeywords)); }
private void UnregisterInvocation(WampRpcInvocation invocation) { lock (mLock) { mRequestIdToInvocation.TryRemove(invocation.InvocationId, out WampRpcInvocation removedInvocation); IWampCaller caller = GetCaller(invocation.Callback); if (caller != null) { mCallerToInvocations.Remove(caller, invocation); } mOperationToInvocations.Remove(invocation.Operation, invocation); mCallbackToInvocation.Remove(invocation.Callback); } }
public void Cancel(IWampCaller caller, long requestId, CancelOptions options) { WampRpcOperationCallback callback = new WampRpcOperationCallback(caller, requestId); lock (mLock) { if (mCallbackToInvocation.TryGetValue(callback, out WampRpcInvocation invocation)) { IWampCallee callee = invocation.Operation.Callee; callee.Interrupt(invocation.InvocationId, new InterruptDetails() { Mode = options.Mode }); } } }
private void CallPattern(IWampCaller caller, long requestId, CallOptions options, string procedure, Action <IWampRpcOperationInvoker, IWampRawRpcOperationClientCallback, InvocationDetails> invokeAction) { try { IWampRawRpcOperationClientCallback callback = GetCallback(caller, requestId); InvocationDetails invocationOptions = GetInvocationOptions(caller, options, procedure); ValidateCallUri(procedure); invokeAction(mInvoker, callback, invocationOptions); } catch (WampException ex) { caller.CallError(requestId, ex); } }
private InvocationDetails GetInvocationOptions(IWampCaller caller, CallOptions options, string procedureUri) { IWampClientProxy wampCaller = caller as IWampClientProxy; InvocationDetailsExtended result = new InvocationDetailsExtended { CallerSession = wampCaller.Session, CallerOptions = options, ProcedureUri = procedureUri }; WelcomeDetails welcomeDetails = wampCaller.WelcomeDetails; result.AuthenticationId = welcomeDetails.AuthenticationId; result.AuthenticationRole = welcomeDetails.AuthenticationRole; return(result); }
public long RegisterInvocation(RemoteWampCalleeDetails operation, IWampRawRpcOperationRouterCallback callback, InvocationDetails options, object[] arguments = null, IDictionary <string, object> argumentsKeywords = null) { lock (mLock) { WampRpcInvocation invocation = new WampRpcInvocation (operation, callback, options, arguments, argumentsKeywords); long invocationId = mRequestIdToInvocation.Add(invocation); invocation.InvocationId = invocationId; mOperationToInvocations.Add(operation, invocation); IWampCaller caller = GetCaller(callback); if (caller != null) { if (!mCallerToInvocations.ContainsKey(caller)) { RegisterDisconnectionNotifier(callback); } mCallerToInvocations.Add(caller, invocation); } IWampClientProperties properties = invocation.Operation.Callee as IWampClientProperties; if (properties.HelloDetails?.Roles?.Callee?.Features?.CallCanceling == true) { mCallbackToInvocation.Add(callback, invocation); } return(invocationId); } }
public virtual void Call(IWampCaller caller, long requestId, CallOptions options, string procedure) { mDealer.Call(caller, requestId, options, procedure); }
private IWampRawRpcOperationClientCallback GetCallback(IWampCaller caller, long requestId) { return(new WampRpcOperationCallback(caller, requestId)); }
public void Cancel(IWampCaller caller, long requestId, CancelOptions options) { throw new NotImplementedException(); }
public virtual void Call(IWampCaller caller, long requestId, CallOptions options, string procedure, TMessage[] arguments, IDictionary <string, TMessage> argumentsKeywords) { mDealer.Call(caller, requestId, options, procedure, arguments, argumentsKeywords); }
public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure, TMessage[] arguments, IDictionary <string, TMessage> argumentsKeywords) { ActualCallParamters = new object[] { options, procedure, arguments, argumentsKeywords }; mCallerCallback(caller, requestId); }
// TODO: Throw exceptions if public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure) { ActualCallParamters = new object[] { options, procedure }; mCallerCallback(caller, requestId); }
public virtual void Cancel(IWampCaller caller, long requestId, CancelOptions options) { mDealer.Cancel(caller, requestId, options); }
public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure, TMessage[] arguments, IDictionary <string, TMessage> argumentsKeywords) { throw new NotImplementedException(); }
public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure) { throw new NotImplementedException(); }
public void Call(IWampCaller caller, long requestId, CallOptions options, string procedure, TMessage[] arguments) { throw new System.NotImplementedException(); }
public void Cancel(IWampCaller caller, long requestId, CancelOptions options) { mHandler.Cancel(caller, requestId, options); }