MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_system_module_set.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_SYSTEM_MODULE_SET_H_1613714028
12#define INCGUARD_MGL_SYSTEM_MODULE_SET_H_1613714028
13
16#include <mgl/mgl_environment.h>
22
23namespace MGL::System
24{
26class ModuleSet final : public MGL::SharedSingleton<ModuleSet>
27{
28public:
30
31 /* ------------------------------------------------------------------------- */
36 /* ------------------------------------------------------------------------- */
37 bool Initialize(const InitializerDelegate &initializer) noexcept
38 {
39 _debug = initializer.MakeDebugModule();
40 _locale = initializer.MakeLocaleModule();
41 _chrono = initializer.MakeChronoModule();
42 _window = initializer.MakeWindowModule();
43 _application = initializer.MakeApplicationModule();
44
45 if (_locale != nullptr)
46 {
47 _locale->Initialize();
48 }
49
50 return true;
51 }
52
53 /* ------------------------------------------------------------------------- */
58 /* ------------------------------------------------------------------------- */
59 [[nodiscard]] WindowModuleInterface &GetWindowModule() const noexcept
60 {
61 return *_window;
62 }
63
64 /* ------------------------------------------------------------------------- */
69 /* ------------------------------------------------------------------------- */
70 [[nodiscard]] ApplicationModuleInterface &GetApplicationModule() const noexcept
71 {
72 return *_application;
73 }
74
75 /* ------------------------------------------------------------------------- */
80 /* ------------------------------------------------------------------------- */
81 [[nodiscard]] LocaleModuleInterface &GetLocaleModule() const noexcept
82 {
83 return *_locale;
84 }
85
86 /* ------------------------------------------------------------------------- */
91 /* ------------------------------------------------------------------------- */
92 [[nodiscard]] ChronoModuleInterface &GetChronoModule() const noexcept
93 {
94 return *_chrono;
95 }
96
97 /* ------------------------------------------------------------------------- */
102 /* ------------------------------------------------------------------------- */
103 [[nodiscard]] DebugModuleInterface &GetDebugModule() const noexcept
104 {
105 return *_debug;
106 }
107
108private:
114};
115} // namespace MGL::System
116
117#endif // INCGUARD_MGL_SYSTEM_MODULE_SET_H_1613714028
118
119// vim: et ts=4 sw=4 sts=4
イニシャライザデリゲート
Definition mgl_initializer_delegate.h:60
シングルトンテンプレート(共有ライブラリ用)
Definition mgl_singleton.h:44
アプリケーションモジュールのインターフェース
Definition mgl_application_module_interface.h:26
日付と時間のモジュールインターフェース
Definition mgl_chrono_module_interface.h:20
MGL デバッグモジュールインターフェース
Definition mgl_debug_module_interface.h:20
ローケール情報モジュールのインターフェース
Definition mgl_locale_module_interface.h:20
システム関連モジュールセットクラス
Definition mgl_system_module_set.h:27
ChronoModuleInterface & GetChronoModule() const noexcept
日付と時間のモジュールを取得
Definition mgl_system_module_set.h:92
DebugModuleInterface & GetDebugModule() const noexcept
デバッグモジュールを取得
Definition mgl_system_module_set.h:103
bool Initialize(const InitializerDelegate &initializer) noexcept
初期化処理
Definition mgl_system_module_set.h:37
ApplicationModuleInterface & GetApplicationModule() const noexcept
アプリケーション機能のモジュールを取得
Definition mgl_system_module_set.h:70
static STL::unique_ptr< ModuleSet > & GetInstanceRef() noexcept
インスタンスの取得
Definition mgl_system_module_set.cc:27
WindowModuleInterface & GetWindowModule() const noexcept
ウィンドウ機能のモジュールを取得
Definition mgl_system_module_set.h:59
LocaleModuleInterface & GetLocaleModule() const noexcept
ロケール情報のモジュールを取得
Definition mgl_system_module_set.h:81
ウィンドウ機能のインターフェース
Definition mgl_window_module_interface.h:22
MGL アプリケーション機能のインターフェース
MGL 日付と時間のモジュールインターフェース
MGL デバッグモジュールインターフェース
MGL 環境定義
MGL イニシャライザデリゲート
MGL ロケール情報モジュールのインターフェース
MGL シングルトンクラス
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
MGL ウィンドウ機能のインターフェース