CommonLibVR
Loading...
Searching...
No Matches
LooseFileStream.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/S/Stream.h"
6
7namespace RE
8{
9 namespace BSResource
10 {
11 class Location;
12
14 public LooseFileStreamBase, // 10
15 public Stream // 00
16 {
17 public:
18 inline static constexpr auto RTTI = RTTI_BSResource____LooseFileStream;
19 inline static constexpr auto VTABLE = VTABLE_BSResource____LooseFileStream;
20
21 ~LooseFileStream() override; // 00
22
23 // override (Stream)
24 ErrorCode DoOpen() override; // 01
25 void DoClose() override; // 02
26 ErrorCode DoGetInfo(Info& a_info) override; // 04
27 void DoClone(BSTSmartPointer<Stream>& a_out) const override; // 05
28 ErrorCode DoRead(void* a_buffer, std::uint64_t a_toRead, std::uint64_t& a_read) const override; // 06
29 ErrorCode DoWrite(const void* a_buffer, std::uint64_t a_toWrite, std::uint64_t& a_written) const override; // 07
30 ErrorCode DoSeek(std::uint64_t a_toSeek, SeekMode a_mode, std::uint64_t& a_sought) const override; // 08
31 ErrorCode DoSetEndOfStream() override; // 09
32 bool DoGetName(BSFixedString& a_dst) const override; // 0A
33 ErrorCode DoCreateAsync(BSTSmartPointer<AsyncStream>& a_streamOut) const override; // 0B
34#ifndef SKYRIM_SUPPORT_AE
35 static LooseFileStream* Create(BSFixedString a_prefix, BSFixedString a_dirName, BSFixedString a_fileName, std::uint32_t a_fileSize, bool a_readOnly, Location* a_location);
36#endif
37
38 // members
40 std::uint64_t filePos; // 40
41 void* buffer; // 48
42
43 private:
44#ifndef SKYRIM_SUPPORT_AE
45 LooseFileStream* Ctor(const BSFixedString& a_prefix, const BSFixedString& a_dirName, const BSFixedString& a_fileName, std::uint32_t a_fileSize, bool a_readOnly, Location* a_location);
46#endif
47 };
48#ifndef SKYRIMVR
49 static_assert(sizeof(LooseFileStream) == 0x50);
50#endif
51 }
52}
Definition Location.h:17
Definition LooseFileStream.h:16
void DoClone(BSTSmartPointer< Stream > &a_out) const override
ErrorCode DoCreateAsync(BSTSmartPointer< AsyncStream > &a_streamOut) const override
ErrorCode DoSetEndOfStream() override
static constexpr auto RTTI
Definition LooseFileStream.h:18
ErrorCode DoRead(void *a_buffer, std::uint64_t a_toRead, std::uint64_t &a_read) const override
ErrorCode DoGetInfo(Info &a_info) override
ErrorCode DoOpen() override
void * buffer
Definition LooseFileStream.h:41
Location * location
Definition LooseFileStream.h:39
bool DoGetName(BSFixedString &a_dst) const override
ErrorCode DoWrite(const void *a_buffer, std::uint64_t a_toWrite, std::uint64_t &a_written) const override
static LooseFileStream * Create(BSFixedString a_prefix, BSFixedString a_dirName, BSFixedString a_fileName, std::uint32_t a_fileSize, bool a_readOnly, Location *a_location)
ErrorCode DoSeek(std::uint64_t a_toSeek, SeekMode a_mode, std::uint64_t &a_sought) const override
std::uint64_t filePos
Definition LooseFileStream.h:40
static constexpr auto VTABLE
Definition LooseFileStream.h:19
Definition Stream.h:21
Definition BSTSmartPointer.h:37
ErrorCode
Definition ErrorCodes.h:8
SeekMode
Definition Stream.h:14
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSResource____LooseFileStream
Definition Offsets_VTABLE.h:9422
constexpr REL::ID RTTI_BSResource____LooseFileStream(static_cast< std::uint64_t >(690383))
Definition Info.h:10
Definition LooseFileStreamBase.h:11