/*** Copyright (C) 2023 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuIOAdapterMemoryView.cpp Date: 2023-09-23 Author: Reece ***/ #include #include #include "AuIOAdapterByteBuffer.hpp" namespace Aurora::IO::Adapters { AUKN_SYM AuSPtr NewMemoryViewReadAdapter(const AuSPtr &pView) { SysCheckArgNotNull(pView, {}); auto pBuffer = AuMakeShared(pView, AuMemoryViewWrite { (void *)pView->ptr, pView->length }); SysCheckNotNull(pBuffer, {}); SysCheckRetExpNotNullMemory(AuMakeShared(pBuffer), {}); } AUKN_SYM AuSPtr NewMemoryViewLinearSeekableAdapter(const AuSPtr &pView) { SysCheckArgNotNull(pView, {}); auto pBuffer = AuMakeShared(pView, AuMemoryViewWrite { (void *)pView->ptr, pView->length }); SysCheckNotNull(pBuffer, {}); SysCheckRetExpNotNullMemory(AuMakeShared(pBuffer), {}); } AUKN_SYM AuSPtr NewMemoryViewWriteAdapter(const AuSPtr &pView) { SysCheckArgNotNull(pView, {}); auto pBuffer = AuMakeShared(pView, *pView); SysCheckNotNull(pBuffer, {}); pBuffer->writePtr = (AuUInt8 *)pView->ptr; SysCheckRetExpNotNullMemory(AuMakeShared(pBuffer), {}); } }