void Pipe::Write(MemoryStream& stream) { const uint32_t position = stream.GetPosition(); const uint32_t size = stream.GetSize(); const uint8_t* pData = stream.GetData() + position; const uint32_t status = Write(size - position, pData); stream.SetPosition(position + status); }
MemoryStream::MemoryStream(const MemoryStream ©) { _access = copy._access; _dataCapacity = copy._dataCapacity; _dataSize = copy._dataSize; if (_access == MEMORY_ACCESS::OWNER) { _data = Memory::Duplicate(copy._data, _dataCapacity); _position = (void*)((uintptr_t)_data + copy.GetPosition()); } }