EM_Task/CoreUObject/Private/Serialization/ObjectWriter.cpp

53 lines
1.3 KiB
C++
Raw Normal View History

2026-02-13 16:18:33 +08:00
// Copyright Epic Games, Inc. All Rights Reserved.
#include "Serialization/ObjectWriter.h"
#include "UObject/LazyObjectPtr.h"
#include "UObject/SoftObjectPtr.h"
///////////////////////////////////////////////////////
// FObjectWriter
FArchive& FObjectWriter::operator<<(class FName& N)
{
FNameEntryId ComparisonIndex = N.GetComparisonIndex();
FNameEntryId DisplayIndex = N.GetDisplayIndex();
int32 Number = N.GetNumber();
ByteOrderSerialize(&ComparisonIndex, sizeof(ComparisonIndex));
ByteOrderSerialize(&DisplayIndex, sizeof(DisplayIndex));
ByteOrderSerialize(&Number, sizeof(Number));
return *this;
}
FArchive& FObjectWriter::operator<<(class UObject*& Res)
{
ByteOrderSerialize(&Res, sizeof(Res));
return *this;
}
FArchive& FObjectWriter::operator<<(FLazyObjectPtr& Value)
{
FUniqueObjectGuid ID = Value.GetUniqueID();
return *this << ID;
}
FArchive& FObjectWriter::operator<<(FSoftObjectPtr& Value)
{
return *this << Value.GetUniqueID();
}
FArchive& FObjectWriter::operator<<(FSoftObjectPath& Value)
{
Value.SerializePath(*this);
return *this;
}
FArchive& FObjectWriter::operator<<(FWeakObjectPtr& Value)
{
return FArchiveUObject::SerializeWeakObjectPtr(*this, Value);
}
FString FObjectWriter::GetArchiveName() const
{
return TEXT("FObjectWriter");
}