bool FMessageRpcClient::HandleTicker(float DeltaTime) { const FDateTime UtcNow = FDateTime::UtcNow(); for (TMap<FGuid, TSharedPtr<IMessageRpcCall>>::TIterator It(Calls); It; ++It) { auto Call = It.Value(); if (UtcNow - Call->GetTimeCreated() > FTimespan::FromSeconds(MESSAGE_RPC_RETRY_TIMEOUT)) { It.RemoveCurrent(); Call->TimeOut(); } else if (UtcNow - Call->GetLastUpdated() > FTimespan::FromSeconds(MESSAGE_RPC_RETRY_INTERVAL)) { SendCall(Call); } } return true; }
void FMessageRpcClient::AddCall(const TSharedRef<IMessageRpcCall>& Call) { Calls.Add(Call->GetId(), Call); SendCall(Call); }
void CMailBox::FlushCalls() { SendCall([]() {}, true); }