rexglue-skate3/include/rex/filesystem/devices/host_path_file.h
2026-05-18 22:41:13 +01:00

41 lines
1.3 KiB
C++

/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2013 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*
* @modified Tom Clay, 2026 - Adapted for ReXGlue runtime
*/
#pragma once
#include <span>
#include <string>
#include <rex/filesystem.h>
#include <rex/filesystem/file.h>
namespace rex::filesystem {
class HostPathEntry;
class HostPathFile : public File {
public:
HostPathFile(uint32_t file_access, HostPathEntry* entry,
std::unique_ptr<rex::filesystem::FileHandle> file_handle);
~HostPathFile() override;
void Destroy() override;
X_STATUS ReadSync(std::span<uint8_t> buffer, size_t byte_offset, size_t* out_bytes_read) override;
X_STATUS WriteSync(std::span<const uint8_t> buffer, size_t byte_offset,
size_t* out_bytes_written) override;
X_STATUS SetLength(size_t length) override;
private:
std::unique_ptr<rex::filesystem::FileHandle> file_handle_;
};
} // namespace rex::filesystem