SkyPortal-plugin/Source/SkyPortal/Public/SkyPortalRunner.h
2024-11-24 20:44:59 +01:00

42 lines
959 B
C++

#pragma once
#include "SkyPortalDefinitions.h"
#include "HAL/Runnable.h"
class FPortalStatusChecker : public FRunnable {
public:
/* Constructor : pass the subsystem and desired check interval(in seconds)
*
* @param InSubsystem Should always be the SkyPortalSubsystem
*/
FPortalStatusChecker(UEngineSubsystem* InSubsystem, float InCheckInterval);
// FRunnable interface
virtual bool Init() override;
virtual uint32 Run() override;
virtual void Stop() override;
virtual void Exit() override;
UPROPERTY(BlueprintReadOnly)
FPortalStatusData CurrentStatusData;
UPROPERTY(BlueprintReadOnly)
FPortalStatusData OldStatusData;
private:
// Pointer to the subsystem that contains PortalStatus()
UEngineSubsystem* SkyPortalSubsystemRef;
// Time interval (in seconds) for status checking
float CheckInterval;
// Thread control variables
FThreadSafeBool bShouldRun;
// Helper function to check portal status
void CheckPortalStatus();
};