ILauncherProfilePtr FLauncherProfileManager::LoadJSONProfile(FString ProfileFile) { FLauncherProfile* Profile = new FLauncherProfile(AsShared()); FString FileContents; if (!FFileHelper::LoadFileToString(FileContents, *ProfileFile)) { return nullptr; } TSharedPtr<FJsonObject> Object; TSharedRef<TJsonReader<> > Reader = TJsonReaderFactory<>::Create(FileContents); if (!FJsonSerializer::Deserialize(Reader, Object) || !Object.IsValid()) { return nullptr; } if (Profile->Load(*(Object.Get()))) { ILauncherDeviceGroupPtr DeviceGroup = GetDeviceGroup(Profile->GetDeployedDeviceGroupId()); if (!DeviceGroup.IsValid()) { DeviceGroup = AddNewDeviceGroup(); } Profile->SetDeployedDeviceGroup(DeviceGroup); return MakeShareable(Profile); } return nullptr; }
ILauncherProfilePtr FLauncherProfileManager::LoadProfile( FArchive& Archive ) { FLauncherProfile* Profile = new FLauncherProfile(AsShared()); if (Profile->Serialize(Archive)) { ILauncherDeviceGroupPtr DeviceGroup = GetDeviceGroup(Profile->GetDeployedDeviceGroupId()); if (!DeviceGroup.IsValid()) { DeviceGroup = AddNewDeviceGroup(); } Profile->SetDeployedDeviceGroup(DeviceGroup); return MakeShareable(Profile); } return nullptr; }