VoltMod
C++23 framework for CS2 server plugins
Loading...
Searching...
No Matches
ModuleSymbols.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Engine/Memory/Image.hpp
"
4
#include "
Engine/Memory/VtableLookup.hpp
"
5
6
#include <
VoltMod/Core/Result.hpp
>
7
#include <map>
8
#include <string>
9
#include <tuple>
10
#include <utility>
11
12
namespace
VoltMod
13
{
14
15
/** Loaded modules, class vtables and base subobjects, each looked up once. */
16
class
ModuleSymbols
17
{
18
public
:
19
/** NotFound naming the module when it is not loaded. */
20
Result<const Image*>
Module
(
const
std::string&
moduleName
);
21
22
/** @p className's primary vtable, or with @p baseName that base's own table inside it. */
23
Result<void*>
Table
(
const
std::string&
moduleName
,
const
std::string&
className
,
const
std::string&
baseName
= {});
24
25
Result<BaseSubobject>
Base
(
const
std::string&
moduleName
,
const
std::string&
className
,
26
const
std::string&
baseName
);
27
28
private
:
29
std::map<std::string, Image> _modules;
30
std::map<std::pair<std::string, std::string>,
void
*> _tables;
31
std::map<std::tuple<std::string, std::string, std::string>,
Result<BaseSubobject>
> _bases;
32
};
33
34
}
// namespace VoltMod
Image.hpp
Result.hpp
VtableLookup.hpp
VoltMod::ModuleSymbols
Definition
ModuleSymbols.hpp:17
VoltMod::ModuleSymbols::Base
Result< BaseSubobject > Base(const std::string &moduleName, const std::string &className, const std::string &baseName)
Definition
ModuleSymbols.cpp:63
VoltMod::ModuleSymbols::Table
Result< void * > Table(const std::string &moduleName, const std::string &className, const std::string &baseName={})
Definition
ModuleSymbols.cpp:29
VoltMod::ModuleSymbols::Module
Result< const Image * > Module(const std::string &moduleName)
Definition
ModuleSymbols.cpp:15
VoltMod
Definition
Options.hpp:13
VoltMod::ReadFile
static std::string ReadFile(const std::filesystem::path &path)
Definition
Loader.cpp:56
VoltMod::Result
std::expected< T, Error > Result
Definition
Result.hpp:64
src
Host
GameData
ModuleSymbols.hpp
Generated by
1.9.8