60 lines
1.2 KiB
C++
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;
|
|
}
|