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