36 lines
869 B
C++
36 lines
869 B
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Memory/SharedBuffer.h"
|
|
|
|
#define UE_API HORDE_API
|
|
|
|
//
|
|
// View into a buffer with shared ownership
|
|
//
|
|
class FSharedBufferView final
|
|
{
|
|
public:
|
|
UE_API FSharedBufferView();
|
|
UE_API FSharedBufferView(FSharedBuffer InBuffer);
|
|
UE_API FSharedBufferView(FSharedBuffer InBuffer, const FMemoryView& InView);
|
|
UE_API FSharedBufferView(FSharedBuffer InBuffer, size_t InOffset, size_t InLength);
|
|
UE_API ~FSharedBufferView();
|
|
|
|
static UE_API FSharedBufferView Copy(const FMemoryView& View);
|
|
|
|
UE_API FSharedBufferView Slice(uint64 Offset) const;
|
|
UE_API FSharedBufferView Slice(uint64 Offset, uint64 Length) const;
|
|
|
|
UE_API const unsigned char* GetPointer() const;
|
|
UE_API size_t GetLength() const;
|
|
UE_API FMemoryView GetView() const;
|
|
|
|
private:
|
|
FSharedBuffer Buffer;
|
|
FMemoryView View;
|
|
};
|
|
|
|
#undef UE_API
|