private async Task CreateAndSendCallMessageAsync(AnalysisInvocationExpession callInfo, MethodDescriptor realCallee, TypeDescriptor receiverType, PropagationKind propKind) { var callMessage = await CreateCallMessageAsync(callInfo, realCallee, receiverType, propKind); var callerMessage = new CallerMessage(this.EntityDescriptor, callMessage); var destination = EntityFactory.Create(realCallee, this.dispatcher); await this.SendMessageAsync(destination, callerMessage); }
private async Task ProcessCallMessageAsync(CallerMessage callerMesssage) { Logger.Instance.Log("MethodEntityProcessor", "ProcessCallMessageAsync", callerMesssage); // Propagate this to the callee (RTA) this.MethodEntity.InstantiatedTypes.UnionWith( Demarshaler.Demarshal(callerMesssage.CallMessageInfo.InstantiatedTypes)); // "Event" handler: Do the propagation of caller info await HandleCallEventAsync(callerMesssage.CallMessageInfo); }
private void CreateAndSendCallMessage(AnalysisInvocationExpession callInfo, MethodDescriptor realCallee, TypeDescriptor receiverType, PropagationKind propKind) { /// Here I have all the necessary info to update the callgraph /// var callMessage = CreateCallMessage(callInfo, realCallee, receiverType, propKind); var callerMessage = new CallerMessage(this.EntityDescriptor, callMessage); var destination = EntityFactory.Create(realCallee, this.dispatcher); this.SendMessage(destination, callerMessage); }