diff options
| author | Stefan Boberg <[email protected]> | 2023-05-02 10:01:47 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-05-02 10:01:47 +0200 |
| commit | 075d17f8ada47e990fe94606c3d21df409223465 (patch) | |
| tree | e50549b766a2f3c354798a54ff73404217b4c9af /zencore/sharedbuffer.cpp | |
| parent | fix: bundle shouldn't append content zip to zen (diff) | |
| download | zen-075d17f8ada47e990fe94606c3d21df409223465.tar.xz zen-075d17f8ada47e990fe94606c3d21df409223465.zip | |
moved source directories into `/src` (#264)
* moved source directories into `/src`
* updated bundle.lua for new `src` path
* moved some docs, icon
* removed old test trees
Diffstat (limited to 'zencore/sharedbuffer.cpp')
| -rw-r--r-- | zencore/sharedbuffer.cpp | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/zencore/sharedbuffer.cpp b/zencore/sharedbuffer.cpp deleted file mode 100644 index 200e06972..000000000 --- a/zencore/sharedbuffer.cpp +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#include <zencore/sharedbuffer.h> - -#include <zencore/testing.h> - -#include <memory.h> - -#include <gsl/gsl-lite.hpp> - -namespace zen { - -////////////////////////////////////////////////////////////////////////// - -UniqueBuffer -UniqueBuffer::Alloc(uint64_t Size) -{ - void* Buffer = Memory::Alloc(Size, 16); - IoBufferCore* Owner = new IoBufferCore(Buffer, Size); - Owner->SetIsOwnedByThis(true); - Owner->SetIsImmutable(false); - - return UniqueBuffer(Owner); -} - -UniqueBuffer -UniqueBuffer::MakeMutableView(void* DataPtr, uint64_t Size) -{ - IoBufferCore* Owner = new IoBufferCore(DataPtr, Size); - Owner->SetIsImmutable(false); - return UniqueBuffer(Owner); -} - -UniqueBuffer::UniqueBuffer(IoBufferCore* Owner) : m_Buffer(Owner) -{ -} - -SharedBuffer -UniqueBuffer::MoveToShared() -{ - return SharedBuffer(std::move(m_Buffer)); -} - -void -UniqueBuffer::Reset() -{ - m_Buffer = nullptr; -} - -////////////////////////////////////////////////////////////////////////// - -SharedBuffer::SharedBuffer(UniqueBuffer&& InBuffer) : m_Buffer(std::move(InBuffer.m_Buffer)) -{ -} - -SharedBuffer -SharedBuffer::MakeOwned() const& -{ - if (IsOwned() || !m_Buffer) - { - return *this; - } - else - { - return Clone(GetView()); - } -} - -SharedBuffer -SharedBuffer::MakeOwned() && -{ - if (IsOwned()) - { - return std::move(*this); - } - else - { - return Clone(GetView()); - } -} - -SharedBuffer -SharedBuffer::MakeView(MemoryView View, SharedBuffer OuterBuffer) -{ - if (OuterBuffer) - { - ZEN_ASSERT(OuterBuffer.GetView().Contains(View)); - } - - if (View == OuterBuffer.GetView()) - { - // Reference to the full buffer contents, so just return the "outer" - return OuterBuffer; - } - - IoBufferCore* NewCore = new IoBufferCore(OuterBuffer.m_Buffer, View.GetData(), View.GetSize()); - NewCore->SetIsImmutable(true); - return SharedBuffer(NewCore); -} - -SharedBuffer -SharedBuffer::MakeView(const void* Data, uint64_t Size) -{ - return SharedBuffer(new IoBufferCore(const_cast<void*>(Data), Size)); -} - -SharedBuffer -SharedBuffer::Clone() -{ - const uint64_t Size = GetSize(); - void* Buffer = Memory::Alloc(Size, 16); - auto NewOwner = new IoBufferCore(Buffer, Size); - NewOwner->SetIsOwnedByThis(true); - memcpy(Buffer, m_Buffer->DataPointer(), Size); - - return SharedBuffer(NewOwner); -} - -SharedBuffer -SharedBuffer::Clone(MemoryView View) -{ - const uint64_t Size = View.GetSize(); - void* Buffer = Memory::Alloc(Size, 16); - auto NewOwner = new IoBufferCore(Buffer, Size); - NewOwner->SetIsOwnedByThis(true); - memcpy(Buffer, View.GetData(), Size); - - return SharedBuffer(NewOwner); -} - -////////////////////////////////////////////////////////////////////////// - -#if ZEN_WITH_TESTS - -void -sharedbuffer_forcelink() -{ -} - -TEST_CASE("SharedBuffer") -{ -} - -#endif - -} // namespace zen |