118 lines
2.1 KiB
C++
118 lines
2.1 KiB
C++
|
|
// Copyright (c) 2022 Sentry. All Rights Reserved.
|
||
|
|
|
||
|
|
#include "SentryUser.h"
|
||
|
|
|
||
|
|
#include "Interface/SentryUserInterface.h"
|
||
|
|
|
||
|
|
#if PLATFORM_ANDROID
|
||
|
|
#include "Android/SentryUserAndroid.h"
|
||
|
|
#elif PLATFORM_IOS || PLATFORM_MAC
|
||
|
|
#include "Apple/SentryUserApple.h"
|
||
|
|
#elif PLATFORM_WINDOWS || PLATFORM_LINUX
|
||
|
|
#include "Desktop/SentryUserDesktop.h"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
USentryUser::USentryUser()
|
||
|
|
{
|
||
|
|
if (USentryUser::StaticClass()->GetDefaultObject() != this)
|
||
|
|
{
|
||
|
|
#if PLATFORM_ANDROID
|
||
|
|
UserNativeImpl = MakeShareable(new SentryUserAndroid());
|
||
|
|
#elif PLATFORM_IOS || PLATFORM_MAC
|
||
|
|
UserNativeImpl = MakeShareable(new SentryUserApple());
|
||
|
|
#elif (PLATFORM_WINDOWS || PLATFORM_LINUX) && USE_SENTRY_NATIVE
|
||
|
|
UserNativeImpl = MakeShareable(new SentryUserDesktop());
|
||
|
|
#endif
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void USentryUser::SetEmail(const FString& Email)
|
||
|
|
{
|
||
|
|
if (!UserNativeImpl)
|
||
|
|
return;
|
||
|
|
|
||
|
|
UserNativeImpl->SetEmail(Email);
|
||
|
|
}
|
||
|
|
|
||
|
|
FString USentryUser::GetEmail() const
|
||
|
|
{
|
||
|
|
if(!UserNativeImpl)
|
||
|
|
return FString();
|
||
|
|
|
||
|
|
return UserNativeImpl->GetEmail();
|
||
|
|
}
|
||
|
|
|
||
|
|
void USentryUser::SetId(const FString& Id)
|
||
|
|
{
|
||
|
|
if (!UserNativeImpl)
|
||
|
|
return;
|
||
|
|
|
||
|
|
UserNativeImpl->SetId(Id);
|
||
|
|
}
|
||
|
|
|
||
|
|
FString USentryUser::GetId() const
|
||
|
|
{
|
||
|
|
if(!UserNativeImpl)
|
||
|
|
return FString();
|
||
|
|
|
||
|
|
return UserNativeImpl->GetId();
|
||
|
|
}
|
||
|
|
|
||
|
|
void USentryUser::SetUsername(const FString& Username)
|
||
|
|
{
|
||
|
|
if (!UserNativeImpl)
|
||
|
|
return;
|
||
|
|
|
||
|
|
UserNativeImpl->SetUsername(Username);
|
||
|
|
}
|
||
|
|
|
||
|
|
FString USentryUser::GetUsername() const
|
||
|
|
{
|
||
|
|
if(!UserNativeImpl)
|
||
|
|
return FString();
|
||
|
|
|
||
|
|
return UserNativeImpl->GetUsername();
|
||
|
|
}
|
||
|
|
|
||
|
|
void USentryUser::SetIpAddress(const FString& IpAddress)
|
||
|
|
{
|
||
|
|
if (!UserNativeImpl)
|
||
|
|
return;
|
||
|
|
|
||
|
|
UserNativeImpl->SetIpAddress(IpAddress);
|
||
|
|
}
|
||
|
|
|
||
|
|
FString USentryUser::GetIpAddress() const
|
||
|
|
{
|
||
|
|
if(!UserNativeImpl)
|
||
|
|
return FString();
|
||
|
|
|
||
|
|
return UserNativeImpl->GetIpAddress();
|
||
|
|
}
|
||
|
|
|
||
|
|
void USentryUser::SetData(const TMap<FString, FString>& Data)
|
||
|
|
{
|
||
|
|
if (!UserNativeImpl)
|
||
|
|
return;
|
||
|
|
|
||
|
|
UserNativeImpl->SetData(Data);
|
||
|
|
}
|
||
|
|
|
||
|
|
TMap<FString, FString> USentryUser::GetData() const
|
||
|
|
{
|
||
|
|
if(!UserNativeImpl)
|
||
|
|
return TMap<FString, FString>();
|
||
|
|
|
||
|
|
return UserNativeImpl->GetData();
|
||
|
|
}
|
||
|
|
|
||
|
|
void USentryUser::InitWithNativeImpl(TSharedPtr<ISentryUser> userImpl)
|
||
|
|
{
|
||
|
|
UserNativeImpl = userImpl;
|
||
|
|
}
|
||
|
|
|
||
|
|
TSharedPtr<ISentryUser> USentryUser::GetNativeImpl()
|
||
|
|
{
|
||
|
|
return UserNativeImpl;
|
||
|
|
}
|