Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Fill out your copyright notice in the Description page of Project Settings.
- #include "FOrbitDataTask.h"
- #include "FileManagementUtils.h"
- #include "Misc/ScopeLock.h"
- #include "StringUtils.h"
- //FCriticalSection FOrbitDataTask::Mutex = nullptr;
- FOrbitDataTask::FOrbitDataTask(uint32 OrbitID, FString Filename, FString FileDirectory, FString DataToBeStored, FCriticalSection& Mutex)
- {
- this->OrbitID = OrbitID;
- this->Filename = Filename;
- this->FileDirectory = FileDirectory;
- this->DataToBeStored = DataToBeStored;
- this->Mutex = &Mutex;
- }
- FOrbitDataTask::~FOrbitDataTask()
- {
- }
- void FOrbitDataTask::DoWork()
- {
- FGenericTask::DoWork();
- TArray<FString> FileData;
- {
- FScopeLock Lock(Mutex);
- UE_LOG(LogTemp, Warning, TEXT("%s is requesting the lock..."),
- *this->GetStatId().GetName().ToString()
- );
- if(IFileManagementUtils::FileExists(Filename, FileDirectory))
- {
- IFileManagementUtils::LoadTextDataFrom(Filename, FileDirectory, FileData);
- FString SearchableInfo = TEXT("OrbitData = ");
- SearchableInfo += IStringUtils::UnsignedIntToString(OrbitID);
- for (int Index = 0; Index <= FileData.Num() - 1; Index++)
- {
- bool bItContains = FileData[Index].Contains(SearchableInfo);
- bItContains = !bItContains;
- if (bItContains && (Index < FileData.Num() - 1))
- {
- FileData.Insert(DataToBeStored, Index + 1);
- }
- else
- {
- if (Index == FileData.Num() - 1)
- {
- FileData.Add(DataToBeStored);
- }
- }
- break;
- }
- }
- else
- {
- FileData.Add(DataToBeStored);
- }
- IFileManagementUtils::CreateTextFileFrom(Filename, FileDirectory, FileData, true);
- UE_LOG(LogTemp, Warning, TEXT("%s is releasing the lock..."),
- *GetStatId().GetName().ToString()
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement