MCPcopy Create free account
hub / github.com/URLab-Sim/UnrealRoboticsLab / Init

Method Init

Source/URLab/Private/Bridge/RpcDispatcher.cpp:262–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

260}
261
262void FURLabRpcDispatcher::Init(AAMjManager* InManager)
263{
264 bDraining.store(false, std::memory_order_release);
265
266 OwnerMgr = InManager;
267 if (!OwnerMgr.IsValid())
268 return;
269
270 // If the project pinned a non-Auto mode, lock it now so set_mode
271 // is rejected until the project relaxes.
272 const EStepMode InitMode = (OwnerMgr->StepMode == EStepMode::Auto)
273 ? EStepMode::Live
274 : OwnerMgr->StepMode;
275 ActiveStepMode.store(InitMode, std::memory_order_release);
276 // Mirror onto the manager so the physics loop paces off the resolved mode
277 // (Auto -> Live), not the configured StepMode which would stay Auto.
278 OwnerMgr->EffectiveStepMode.store(InitMode, std::memory_order_release);
279 const bool bPaused = (InitMode != EStepMode::Live);
280 OwnerMgr->bPublishersPaused.store(bPaused, std::memory_order_release);
281 FCameraZmqWorker::bPublishersPaused.store(bPaused, std::memory_order_release);
282
283 if (InitMode == EStepMode::Puppet)
284 InstallPuppetHandler();
285 else if (InitMode == EStepMode::Direct)
286 InstallDirectHandler();
287
288 // Cached on the game thread; worker threads later use Get() (TActorIterator
289 // asserts IsInGameThread).
290 if (UWorld* World = OwnerMgr->GetWorld())
291 {
292 AActor* Actor = UGameplayStatics::GetActorOfClass(
293 World, AMjReplayManager::StaticClass());
294 CachedReplayManager = Cast<AMjReplayManager>(Actor);
295 }
296}
297
298void FURLabRpcDispatcher::OnManagerGone()
299{

Callers 1

RegisterManagerMethod · 0.45

Calls 1

IsValidMethod · 0.80

Tested by

no test coverage detected