wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
wowlib::fs::MpqStorage::OpenedArchive Struct Reference

One opened member of the chain, for introspection and tests. More...

#include <wowlib/fs/mpq/mpq_storage.hpp>

Public Attributes

std::filesystem::path path
 The archive file or loose-dir root on disk.
bool isDirectory = false
 true => served from loose files below.
void * handle = nullptr
 StormLib HANDLE (archive members).
std::unique_ptr< std::mutex > mtx
 Serializes StormLib calls (archive members).
bool patched = false
 Whether wow-update patch archives are attached (Cata+).
std::unordered_map< std::string, std::filesystem::path > loose
 Loose members: canonical in-game path -> the file on disk.

Detailed Description

One opened member of the chain, for introspection and tests.

Exactly one source is active — a StormLib archive, or a loose directory whose files are indexed by canonical in-game path — as selected by isDirectory.

Definition at line 98 of file mpq_storage.hpp.

Member Data Documentation

◆ handle

void* wowlib::fs::MpqStorage::OpenedArchive::handle = nullptr

StormLib HANDLE (archive members).

Definition at line 102 of file mpq_storage.hpp.

◆ isDirectory

bool wowlib::fs::MpqStorage::OpenedArchive::isDirectory = false

true => served from loose files below.

Definition at line 100 of file mpq_storage.hpp.

◆ loose

std::unordered_map<std::string, std::filesystem::path> wowlib::fs::MpqStorage::OpenedArchive::loose

Loose members: canonical in-game path -> the file on disk.

Built once at open, read-only after, so reads need no lock. Case-insensitive lookup falls out of both sides being in canonical (lowercased) form.

Definition at line 114 of file mpq_storage.hpp.

◆ mtx

std::unique_ptr<std::mutex> wowlib::fs::MpqStorage::OpenedArchive::mtx

Serializes StormLib calls (archive members).

Definition at line 103 of file mpq_storage.hpp.

◆ patched

bool wowlib::fs::MpqStorage::OpenedArchive::patched = false

Whether wow-update patch archives are attached (Cata+).

A patched archive serves files ADDED by its updates too, which StormLib's plain has-file probe cannot see — lookups go through the open call instead.

Definition at line 109 of file mpq_storage.hpp.

◆ path

std::filesystem::path wowlib::fs::MpqStorage::OpenedArchive::path

The archive file or loose-dir root on disk.

Definition at line 99 of file mpq_storage.hpp.


The documentation for this struct was generated from the following file: