IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
module_types.hxx
Go to the documentation of this file.
1
3
4#pragma once
6#include <ice/stringid.hxx>
7
8namespace ice
9{
10
11 template<typename Type>
12 class Module;
13 class ModuleRegister;
15 template<typename Type>
17
18 struct ModuleQuery;
19 struct ModuleAPI;
21 struct ModuleNegotiatorAPIContext;
22
23 using FnModuleLoad = void (ice::Allocator*, ice::ModuleNegotiatorAPIContext*, ice::ModuleNegotiatorAPI*);
26
27 template <typename T>
28 using ProcAPIQuickRegisterFunc = void(*)(T& out_api) noexcept;
29
30} // namespace ice
Base class for modules that will automatically register them to be loaded by the module manager.
Definition module.hxx:17
Helper type over the ModuleNegotiatorAPI type.
Definition module_negotiator.hxx:51
Definition module_negotiator.hxx:82
Type to manage loading and unloading of modules and their APIs.
Definition module_register.hxx:19
SPDX-License-Identifier: MIT.
Definition array.hxx:12
void(*)(T &out_api) noexcept ProcAPIQuickRegisterFunc
Definition module_types.hxx:28
void(ice::Allocator *, ice::ModuleNegotiatorAPIContext *, ice::ModuleNegotiatorAPI *) FnModuleLoad
Definition module_types.hxx:23
void(ice::Allocator *) FnModuleUnload
Definition module_types.hxx:24
std::uint32_t u32
Definition types.hxx:26
ice::AllocatorBase< ice::build::is_debug||ice::build::is_develop > Allocator
Definition mem_types.hxx:25
bool(ice::StringID_Hash, ice::u32, ice::ModuleAPI *) FnModuleSelectAPI
Definition module_types.hxx:25
Stores information about a single API entry.
Definition module_info.hxx:33
Negotiation API used to register and query modules for their APIs.
Definition module_negotiator.hxx:17
Definition module_query.hxx:14
Internal hash type representing the hashed string value.
Definition stringid.hxx:34