void FMessageTracer::TraceAddedRecipient( const FMessageAddress& Address, const IReceiveMessagesRef& Recipient ) { double Timestamp = FPlatformTime::Seconds(); Traces.Enqueue([=]() { // create endpoint information FMessageTracerEndpointInfoPtr& EndpointInfo = RecipientsToEndpointInfos.FindOrAdd(Recipient->GetRecipientId()); if (!EndpointInfo.IsValid()) { EndpointInfo = MakeShareable(new FMessageTracerEndpointInfo()); } // initialize endpoint information FMessageTracerAddressInfoRef AddressInfo = MakeShareable(new FMessageTracerAddressInfo()); AddressInfo->Address = Address; AddressInfo->TimeRegistered = Timestamp; AddressInfo->TimeUnregistered = 0; EndpointInfo->AddressInfos.Add(Address, AddressInfo); EndpointInfo->Name = Recipient->GetDebugName(); EndpointInfo->Remote = Recipient->IsRemote(); // add to address table AddressesToEndpointInfos.Add(Address, EndpointInfo); }); }