Added Datetime sorting functionality and Metrics test on GetPursit
This commit is contained in:
@ -7,6 +7,7 @@
|
||||
|
||||
#include "DTFluxCoreSubsystem.h"
|
||||
#include "DTFluxCoreSubsystemModule.h"
|
||||
#include "Dataflow/DataflowContextCache.h"
|
||||
|
||||
UDTFluxPursuitManager::UDTFluxPursuitManager(const FObjectInitializer& ObjectInitializer):
|
||||
Super(ObjectInitializer)
|
||||
@ -69,6 +70,8 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
||||
TArray<FDTFluxPursuitInfo>& OutPursuitNext, bool& BIsFocusTruncate,
|
||||
const int MaxSimultaneousPursuit)
|
||||
{
|
||||
FDateTime CurrentTime = FDateTime::UtcNow();
|
||||
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("=== GetPursuit CALLED ==="));
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("MaxSimultaneousPursuit: %d"), MaxSimultaneousPursuit);
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Available groups: %d"), GroupedPursuit.Num());
|
||||
@ -83,6 +86,7 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (bIsSequenceDone || GroupedPursuit.IsEmpty())
|
||||
{
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("No groups available or sequence completed"));
|
||||
@ -92,12 +96,30 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
||||
return;
|
||||
}
|
||||
|
||||
int32 RemovedGroupsCount = 0;
|
||||
for (int32 i = GroupedPursuit.Num() - 1; i >= 0; i--) // Parcours inverse pour éviter les problèmes d'index
|
||||
{
|
||||
const FDTFluxPursuitGroup& Group = GroupedPursuit[i];
|
||||
|
||||
// Vérifier si le StartTime du groupe est déjà passé
|
||||
if (Group.StartTimeGlobal < CurrentTime)
|
||||
{
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning,
|
||||
TEXT("Removing expired group: StartTime=%s (Current=%s), Participants=%d"),
|
||||
*Group.StartTimeGlobal.ToString(),
|
||||
*CurrentTime.ToString(),
|
||||
Group.PursuitGroup.Num());
|
||||
|
||||
GroupedPursuit.RemoveAt(i);
|
||||
RemovedGroupsCount++;
|
||||
}
|
||||
}
|
||||
|
||||
OutPursuitFocusNext.Reset();
|
||||
OutPursuitNext.Reset();
|
||||
|
||||
// === ÉTAPE 1: FOCUS = PREMIER GROUPE (et le supprimer) ===
|
||||
FDTFluxPursuitGroup FocusGroup = GroupedPursuit[0]; // Copie du premier groupe
|
||||
GroupedPursuit.RemoveAt(0); // ✅ SUPPRIMER le premier groupe
|
||||
FDTFluxPursuitGroup FocusGroup = GroupedPursuit[0];
|
||||
GroupedPursuit.RemoveAt(0);
|
||||
|
||||
SetPursuitInfoIsMassStart(FocusGroup);
|
||||
OutPursuitFocusNext = FocusGroup.PursuitGroup;
|
||||
@ -176,6 +198,10 @@ void UDTFluxPursuitManager::GetPursuit(TArray<FDTFluxPursuitInfo>& OutPursuitFoc
|
||||
bIsSequenceDone = true;
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Pursuit sequence will be completed after this round"));
|
||||
}
|
||||
FTimespan Duration = FDateTime::UtcNow() - CurrentTime;
|
||||
|
||||
UE_LOG(logDTFluxCoreSubsystem, Warning, TEXT("Metrics Time Out: %d fraction seconds"),
|
||||
Duration.GetDuration().GetFractionMicro());
|
||||
}
|
||||
|
||||
bool UDTFluxPursuitManager::InitSubSystems()
|
||||
|
||||
Reference in New Issue
Block a user