private static IWampCaller GetCaller(IWampRawRpcOperationRouterCallback callback) { IWampCaller caller = null; WampRpcOperationCallback operationCallback = callback as WampRpcOperationCallback; if (operationCallback != null) { caller = operationCallback.Caller; } return(caller); }
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 OnCallbackDisconnected(object sender, EventArgs e) { UnregisterDisconnectionNotifier(sender); WampRpcOperationCallback callback = sender as WampRpcOperationCallback; lock (mLock) { if (mCallerToInvocations.TryGetValue(callback.Caller, out ICollection <WampRpcInvocation> invocations)) { foreach (WampRpcInvocation invocation in invocations.ToArray()) { UnregisterInvocation(invocation); } } } }
protected bool Equals(WampRpcOperationCallback other) { return(Session == other.Session && RequestId == other.RequestId); }
protected bool Equals(WampRpcOperationCallback other) { return(Equals(mCaller, other.mCaller)); }