public Task <byte[]> InvokeAsync( ActorId actorId, int interfaceId, int methodId, string callContext, byte[] requestMsgBody, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var methodDispatcher = this.actorService.MethodDispatcherMap.GetDispatcher(interfaceId, methodId); var actorMethodName = methodDispatcher.GetMethodName(methodId); var actorMethodContext = ActorMethodContext.CreateForActor(actorMethodName); var deserializationStartTime = DateTime.UtcNow; var requestBody = methodDispatcher.DeserializeRequestMessageBody(requestMsgBody); this.DiagnosticsEventManager.ActorRequestDeserializationFinish(deserializationStartTime); return(this.DispatchToActorAsync( actorId: actorId, actorMethodContext: actorMethodContext, createIfRequired: true, actorFunc: (actor, innerCancellationToken) => this.ActorMethodDispatch(methodDispatcher, actor, interfaceId, methodId, requestBody, innerCancellationToken), callContext: callContext, timerCall: false, cancellationToken: cancellationToken)); }
public Task <IServiceRemotingResponseMessageBody> InvokeAsync(ActorId actorId, int interfaceId, int methodId, string callContext, IServiceRemotingRequestMessageBody requestMsgBody, IServiceRemotingMessageBodyFactory remotingMessageBodyFactory, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); this.ThrowIfClosed(); var methodDispatcher = this.actorService.MethodDispatcherMapV2.GetDispatcher(interfaceId, methodId); var actorMethodName = methodDispatcher.GetMethodName(methodId); var actorMethodContext = ActorMethodContext.CreateForActor(actorMethodName); return(this.DispatchToActorAsync <IServiceRemotingResponseMessageBody>( actorId: actorId, actorMethodContext: actorMethodContext, createIfRequired: true, actorFunc: (actor, innerCancellationToken) => this.ActorMethodDispatch(methodDispatcher, actor, interfaceId, methodId, requestMsgBody, remotingMessageBodyFactory, innerCancellationToken), callContext: callContext, timerCall: false, cancellationToken: cancellationToken)); }