Space Plunder
Loading...
Searching...
No Matches
FOptimizationManager Class Reference

#include <OptimizationManager.h>

Inheritance diagram for FOptimizationManager:

Public Member Functions

 FOptimizationManager (UWorld *InWorld)
 
virtual ~FOptimizationManager () override
 
virtual void AddReferencedObjects (FReferenceCollector &Collector) override
 
virtual FString GetReferencerName () const override
 
void RegisterComponent (UOptimizationProxyComponent *Component) const
 
void UnregisterComponent (const UOptimizationProxyComponent *Component) const
 

Protected Member Functions

void HandlePostGarbageCollect () const
 

Protected Attributes

FDelegateHandle OnWorldPreActorTickHandle
 
FDelegateHandle PostGarbageCollectHandle
 

Private Attributes

TObjectPtr< UWorld > GameWorld = nullptr
 
TUniquePtr< FOptimizationThreadOptimizationThread
 
FCriticalSection Mutex
 

Constructor & Destructor Documentation

◆ FOptimizationManager()

FOptimizationManager::FOptimizationManager ( UWorld * InWorld)
310 : GameWorld(InWorld), OptimizationThread(MakeUnique<FOptimizationThread>(InWorld, this))
311{
312 PostGarbageCollectHandle = FCoreUObjectDelegates::GetPostGarbageCollect().AddRaw(this, &FOptimizationManager::HandlePostGarbageCollect);
313}
void HandlePostGarbageCollect() const
Definition OptimizationManager.cpp:351
TObjectPtr< UWorld > GameWorld
Definition OptimizationManager.h:73
FDelegateHandle PostGarbageCollectHandle
Definition OptimizationManager.h:71
TUniquePtr< FOptimizationThread > OptimizationThread
Definition OptimizationManager.h:74

◆ ~FOptimizationManager()

FOptimizationManager::~FOptimizationManager ( )
overridevirtual
316{
317 if (OptimizationThread.IsValid())
318 {
319 OptimizationThread->Exit();
320 }
321
322 FCoreUObjectDelegates::GetPostGarbageCollect().Remove(PostGarbageCollectHandle);
323}

Member Function Documentation

◆ AddReferencedObjects()

void FOptimizationManager::AddReferencedObjects ( FReferenceCollector & Collector)
overridevirtual
326{
327 Collector.AddReferencedObject(GameWorld);
328}

◆ GetReferencerName()

FString FOptimizationManager::GetReferencerName ( ) const
overridevirtual
331{
332 return TEXT("FOptimizationManager");
333}

◆ HandlePostGarbageCollect()

void FOptimizationManager::HandlePostGarbageCollect ( ) const
protected
352{
353 if (OptimizationThread.IsValid())
354 {
355 OptimizationThread->HandlePostGarbageCollect();
356 }
357}

◆ RegisterComponent()

void FOptimizationManager::RegisterComponent ( UOptimizationProxyComponent * Component) const
336{
337 if (OptimizationThread.IsValid())
338 {
339 OptimizationThread->RegisterComponent(Component);
340 }
341}

◆ UnregisterComponent()

void FOptimizationManager::UnregisterComponent ( const UOptimizationProxyComponent * Component) const
344{
345 if (OptimizationThread.IsValid())
346 {
347 OptimizationThread->UnregisterComponent(Component);
348 }
349}

Member Data Documentation

◆ GameWorld

TObjectPtr<UWorld> FOptimizationManager::GameWorld = nullptr
private

◆ Mutex

FCriticalSection FOptimizationManager::Mutex
private

◆ OnWorldPreActorTickHandle

FDelegateHandle FOptimizationManager::OnWorldPreActorTickHandle
protected

◆ OptimizationThread

TUniquePtr<FOptimizationThread> FOptimizationManager::OptimizationThread
private

◆ PostGarbageCollectHandle

FDelegateHandle FOptimizationManager::PostGarbageCollectHandle
protected

The documentation for this class was generated from the following files: