Files
Commonwealth-Online-Public/plugin/lib/commonlibf4/include/RE/B/BSResource_Stream.h
T
2026-05-30 18:33:24 +12:00

64 lines
7.0 KiB
C++

#pragma once
#include "RE/B/BSEventFlag.h"
#include "RE/B/BSFixedString.h"
#include "RE/B/BSResource_SeekMode.h"
#include "RE/B/BSResource_StreamBase.h"
#include "RE/B/BSTSmartPointer.h"
namespace RE::BSResource
{
class AsyncStream;
class ICacheDriveOp;
class __declspec(novtable) Stream :
public StreamBase
{
public:
inline static constexpr auto RTTI = { RTTI::BSResource__Stream };
inline static constexpr auto VTABLE = { VTABLE::BSResource__Stream };
Stream();
Stream(const Stream& a_rhs);
Stream(Stream&& a_rhs);
Stream(std::uint32_t a_totalSize, bool writable);
~Stream() override = default; // 00
virtual void DoClone(BSTSmartPointer<Stream>& a_result) const = 0; // 05
virtual ErrorCode DoRead(void* a_buffer, std::uint64_t a_bytes, std::uint64_t& a_read) const = 0; // 06
virtual ErrorCode DoReadAt(void* a_buffer, std::uint64_t a_bytes, std::uint64_t a_pos, std::uint64_t& a_read) const; // 07
virtual ErrorCode DoWrite(const void* a_buffer, std::uint64_t a_bytes, std::uint64_t& a_write) const = 0; // 08
virtual ErrorCode DoSeek(std::int64_t a_offset, SeekMode a_seekMode, std::uint64_t& a_pos) const = 0; // 09
virtual ErrorCode DoSetEndOfStream(); // 0A
virtual ErrorCode DoPrefetchAt(std::uint64_t a_bytes, std::uint64_t a_offset, std::uint32_t a_priority) const; // 0B
virtual ErrorCode DoStartTaggedPrioritizedRead(void* a_buffer, std::uint64_t a_bytes, std::uint64_t a_offset, std::uint32_t a_priority, volatile std::uint32_t* a_completionTag, std::uint32_t& a_completionTagWaitValue, BSEventFlag* a_eventFlag) const; // 0C
virtual ErrorCode DoWaitTags(volatile std::uint32_t* a_completionTag, std::uint32_t a_completionTagWaitValue, BSEventFlag* a_eventFlag) const; // 0D
virtual ErrorCode DoPrefetchAll(std::uint32_t a_priority) const; // 0E
virtual bool DoGetName(BSFixedString& a_result) const; // 0F
virtual ErrorCode DoCreateAsync(BSTSmartPointer<AsyncStream>& a_result) const; // 10
virtual bool DoQTaggedPrioritizedReadSupported() const; // 11
virtual ErrorCode DoCreateOp(BSTSmartPointer<ICacheDriveOp>& a_result, char const* a_arg2) const; // 12
virtual bool DoGetIsFromArchive() const; // 13
// non virtuals
bool GetName(BSFixedString& a_dst) const; //0000000140004410
ErrorCode Open(bool buffered, bool fullReadHint); //000000014012A830
ErrorCode Read(void* a_buffer, std::uint64_t a_toRead, std::uint64_t& a_read) const; // 14012B2E0
ErrorCode Seek(std::uint64_t a_toSeek, SeekMode a_mode, std::uint64_t& a_sought) const; //00000001401B8160
ErrorCode Write(const void* a_buffer, std::uint64_t a_toWrite, std::uint64_t& a_written) const; //00000001402D6200
ErrorCode ReadAt(void* a_buffer, std::uint64_t a_offset, std::uint64_t a_toRead, std::uint64_t& a_read) const; //000000014036DF60
ErrorCode CreateOp(BSTSmartPointer<ICacheDriveOp>& a_opOut, const char* name) const; //0000000140D0F080
ErrorCode CreateAsync(BSTSmartPointer<AsyncStream>& a_streamOut) const; //0000000141AF97F0
ErrorCode PrefetchAll(std::uint32_t a_v) const; //0000000141B6EE50
ErrorCode PrefetchAt(std::uint64_t a_v, std::uint64_t b_v, std::uint32_t c_v) const; // 141B7A0A0
std::uint32_t QFullReadHint() const; // 141B7A5B0
bool QTaggedPrioritizedReadSupported() const; // 141B7A780
ErrorCode StartTaggedPrioritizedRead(void* buf, std::uint64_t a_v, std::uint64_t b_v, std::uint32_t c_V, std::uint32_t volatile* d_v, std::uint32_t& e_v, BSEventFlag* event_flag) const; // 141B7BB30
ErrorCode WaitTags(std::uint32_t volatile* a_v, std::uint32_t b_v, BSEventFlag* event_flag) const; // 141B7CAB0
std::uint32_t QBuffered() const; // 141B87490
ErrorCode SetEndOfStream(); // 141B8C9F0
};
static_assert(sizeof(Stream) == 0x10);
}