Files
UnrealEngine/Engine/Source/Developer/Horde/Private/SharedBufferView.cpp
2025-05-18 13:04:45 +08:00

60 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SharedBufferView.h"
FSharedBufferView::FSharedBufferView()
{
}
FSharedBufferView::FSharedBufferView(FSharedBuffer InBuffer)
: Buffer(MoveTemp(InBuffer))
, View(Buffer.GetView())
{
}
FSharedBufferView::FSharedBufferView(FSharedBuffer InBuffer, const FMemoryView& InView)
: Buffer(MoveTemp(InBuffer))
, View(InView)
{
}
FSharedBufferView::FSharedBufferView(FSharedBuffer InBuffer, size_t InOffset, size_t InLength)
: Buffer(MoveTemp(InBuffer))
, View(Buffer.GetView().Mid(InOffset, InLength))
{
}
FSharedBufferView::~FSharedBufferView()
{
}
FSharedBufferView FSharedBufferView::Copy(const FMemoryView& Span)
{
return FSharedBufferView(FSharedBuffer::Clone(Span));
}
FSharedBufferView FSharedBufferView::Slice(uint64 Offset) const
{
return FSharedBufferView(Buffer, View.Mid(Offset));
}
FSharedBufferView FSharedBufferView::Slice(uint64 Offset, uint64 Length) const
{
return FSharedBufferView(Buffer, View.Mid(Offset, Length));
}
const unsigned char* FSharedBufferView::GetPointer() const
{
return (const unsigned char*)View.GetData();
}
size_t FSharedBufferView::GetLength() const
{
return View.GetSize();
}
FMemoryView FSharedBufferView::GetView() const
{
return View;
}