IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
ice::ModuleNegotiatorTagged< Tag > Class Template Referencefinal

#include <ice/module_negotiator.hxx>

Inheritance diagram for ice::ModuleNegotiatorTagged< Tag >:
ice::ModuleNegotiatorBase ice::ModuleQuery

Public Member Functions

template<typename T>
requires (ice::concepts::APIType<T>)
bool register_api (ice::ProcAPIQuickRegisterFunc< T > register_func) const noexcept
 Registers an API selector function.
 ModuleNegotiatorBase (ice::ModuleNegotiatorAPI *negotiator_api, ice::ModuleNegotiatorAPIContext *negotiator_context) noexcept
bool query_apis (ice::StringID_Arg api_name, ice::u32 api_version, ice::ModuleAPI *out_array, ice::u32 *inout_array_size) const noexcept override
 \copy ice::ModuleQuery::query_apis
bool register_api (ice::StringID_Arg api_name, ice::FnModuleSelectAPI *fn_api_selector) const noexcept
 Registers an API selector function with the given API name.
Public Member Functions inherited from ice::ModuleNegotiatorBase
 ModuleNegotiatorBase (ice::ModuleNegotiatorAPI *negotiator_api, ice::ModuleNegotiatorAPIContext *negotiator_context) noexcept
bool from_app () const noexcept
bool register_api (ice::StringID_Arg api_name, ice::FnModuleSelectAPI *fn_api_selector) const noexcept
 Registers an API selector function with the given API name.
Public Member Functions inherited from ice::ModuleQuery
virtual ~ModuleQuery () noexcept=default
virtual bool query_api (ice::StringID_Arg api_name, ice::u32 version, ice::ModuleAPI &out_api) const noexcept
 Queries an API info for the given name and version.
template<typename Type>
requires (ice::concepts::APIType<Type>)
bool query_api (Type &api_struct) const noexcept
 Queries a single API for the given API struct.
template<typename Type>
requires (ice::concepts::APIType<Type>)
bool query_apis (ice::Array< Type > &out_apis) const noexcept
 Queries all APIs for the given API struct.

Additional Inherited Members

Public Attributes inherited from ice::ModuleNegotiatorBase
ice::ModuleNegotiatorAPInegotiator_api
ice::ModuleNegotiatorAPIContext * negotiator_context

Member Function Documentation

◆ ModuleNegotiatorBase()

template<typename Tag>
ice::ModuleNegotiatorBase::ModuleNegotiatorBase ( ice::ModuleNegotiatorAPI * negotiator_api,
ice::ModuleNegotiatorAPIContext * negotiator_context )
inlinenoexcept

◆ query_apis()

template<typename Tag>
bool ice::ModuleNegotiatorBase::query_apis ( ice::StringID_Arg api_name,
ice::u32 api_version,
ice::ModuleAPI * out_array,
ice::u32 * inout_array_size ) const
overridevirtualnoexcept

◆ register_api() [1/2]

template<typename Tag>
requires (ice::concepts::APIType<T>)
template<typename T>
requires (ice::concepts::APIType<T>)
bool ice::ModuleNegotiatorTagged< Tag >::register_api ( ice::ProcAPIQuickRegisterFunc< T > register_func) const
inlinenoexcept

Registers an API selector function.

The API type is inferred from the first parameter of the given function. If that function parameter is a valid API type, the API name, version and priority (if set) are taken from the type.

◆ register_api() [2/2]

template<typename Tag>
bool ice::ModuleNegotiatorBase::register_api ( ice::StringID_Arg api_name,
ice::FnModuleSelectAPI * fn_api_selector ) const
noexcept

Registers an API selector function with the given API name.


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