Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
Commit 86cb33a5 authored by g4m4's avatar g4m4
Browse files

[CODE] Implement crash context custom data

parent 7f662679
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "FixItSubsystem.h" #include "FixItSubsystem.h"
#include "FixItBackend.h" #include "FixItBackend.h"
#include "FixItCore.h"
#include "FixItSettings.h" #include "FixItSettings.h"
DEFINE_LOG_CATEGORY(LogFixItGame); DEFINE_LOG_CATEGORY(LogFixItGame);
...@@ -37,6 +38,8 @@ void UFixItSubsystem::Initialize(FSubsystemCollectionBase& Collection) ...@@ -37,6 +38,8 @@ void UFixItSubsystem::Initialize(FSubsystemCollectionBase& Collection)
return; return;
}); });
} }
FFixItCoreModule& FixItCoreModule = FModuleManager::GetModuleChecked<FFixItCoreModule>("FixItCore");
FixItCoreModule.SetCrashContextData(FPaths::ProjectSavedDir());
} }
void UFixItSubsystem::Deinitialize() void UFixItSubsystem::Deinitialize()
......
...@@ -6,6 +6,11 @@ THIRD_PARTY_INCLUDES_START ...@@ -6,6 +6,11 @@ THIRD_PARTY_INCLUDES_START
#include "fixit/common.h" #include "fixit/common.h"
THIRD_PARTY_INCLUDES_END THIRD_PARTY_INCLUDES_END
#if PLATFORM_WINDOWS
// Not available on e.g. consoles
#include "HAL/PlatformCrashContext.h"
#endif
#include "FixItDataModule.h" #include "FixItDataModule.h"
#include "FixItHttpModule.h" #include "FixItHttpModule.h"
...@@ -17,6 +22,24 @@ namespace { ...@@ -17,6 +22,24 @@ namespace {
} }
} }
FString FFixItCrashContextData::GetGameDataKey()
{
return "FixIt";
}
void FFixItCrashContextData::SetGameDataValue(const FString& Data)
{
SaveDirectory = Data;
#if PLATFORM_WINDOWS
FPlatformCrashContext::SetGameData(GetGameDataKey(), GetGameDataValue());
#endif
}
FString FFixItCrashContextData::GetGameDataValue() const
{
return SaveDirectory;
}
// Implementations, even if defaulted, must be in the implementation file // Implementations, even if defaulted, must be in the implementation file
// (for forward declarations and TUniquePtr usage) // (for forward declarations and TUniquePtr usage)
FFixItCoreModule::FFixItCoreModule() = default; FFixItCoreModule::FFixItCoreModule() = default;
...@@ -39,4 +62,9 @@ void FFixItCoreModule::ShutdownModule() ...@@ -39,4 +62,9 @@ void FFixItCoreModule::ShutdownModule()
#endif // PLATFORM_WINDOWS #endif // PLATFORM_WINDOWS
} }
void FFixItCoreModule::SetCrashContextData(const FString& Data)
{
CrashContextData.SetGameDataValue(Data);
}
IMPLEMENT_MODULE(FFixItCoreModule, FixItCore) IMPLEMENT_MODULE(FFixItCoreModule, FixItCore)
...@@ -12,6 +12,21 @@ DECLARE_LOG_CATEGORY_EXTERN(LogFixItCore, Log, All); ...@@ -12,6 +12,21 @@ DECLARE_LOG_CATEGORY_EXTERN(LogFixItCore, Log, All);
class FFixItDataModule; class FFixItDataModule;
class FFixItHttpModule; class FFixItHttpModule;
// Structure of data to be communicated to the Crash Reporter
// Only text can be transmitted, so this structure will get serialised into a string
// TODO(gama) This will only have effect on Windows for now!
struct FIXITCORE_API FFixItCrashContextData
{
static FString GetGameDataKey();
void SetGameDataValue(const FString& Data);
FString GetGameDataValue() const;
private:
FString SaveDirectory;
};
// The base module for FixIt
class FIXITCORE_API FFixItCoreModule : public IModuleInterface class FIXITCORE_API FFixItCoreModule : public IModuleInterface
{ {
public: public:
...@@ -24,10 +39,14 @@ public: ...@@ -24,10 +39,14 @@ public:
virtual void ShutdownModule() override; virtual void ShutdownModule() override;
// End IModuleInterface interface // End IModuleInterface interface
void SetCrashContextData(const FString& Data);
private: private:
#if PLATFORM_WINDOWS #if PLATFORM_WINDOWS
// Fixit lib "modules" // Fixit lib "modules"
TUniquePtr<FFixItDataModule> DataModule; TUniquePtr<FFixItDataModule> DataModule;
TUniquePtr<FFixItHttpModule> HttpModule; TUniquePtr<FFixItHttpModule> HttpModule;
#endif // PLATFORM_WINDOWS #endif // PLATFORM_WINDOWS
FFixItCrashContextData CrashContextData;
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment