Switchboard Extension SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
ExtensionManager.hpp
1
//
2
// ExtensionManager.hpp
3
// SwitchboardSDK
4
//
5
// Created by Balazs Kiss on 30/08/2024.
6
//
7
8
#pragma once
9
10
#include <switchboard/export.h>
11
#include <switchboard_core/Extension.hpp>
12
#include <map>
13
#include <string>
14
#include <vector>
15
16
namespace
switchboard {
17
18
class
ExtensionLoader;
19
25
constexpr
const
char
* DYNAMIC_EXTENSION_NAME_PREFIX =
"dynamic-"
;
26
30
class
SWITCHBOARDSDK_EXPORT
ExtensionManager
final {
31
public
:
35
static
ExtensionManager
&
getInstance
();
36
45
void
registerExtension
(std::shared_ptr<Extension> extension);
46
55
Result<void>
initializeExtension
(
const
std::string& extensionName,
const
SBAnyMap& config);
56
64
Result<void>
deinitializeExtension
(
const
std::string& extensionName);
65
69
void
deinitializeAllExtensions
();
70
77
std::vector<std::string>
getExtensionNames
()
const
;
78
79
private
:
80
// Only the loader may open the window below.
81
friend
class
ExtensionLoader;
82
84
void
beginDynamicExtensionLoad();
85
87
std::string endDynamicExtensionLoad();
88
89
static
ExtensionManager
* sharedInstance;
90
91
std::map<std::string, std::shared_ptr<Extension>> extensions;
92
93
bool
dynamicExtensionLoadInProgress =
false
;
94
std::string nameRegisteredDuringLoad;
95
};
96
97
}
switchboard::ExtensionManager
Manages the extensions of the Switchboard SDK.
Definition
ExtensionManager.hpp:30
switchboard::ExtensionManager::deinitializeAllExtensions
void deinitializeAllExtensions()
Deinitializes all registered extensions.
switchboard::ExtensionManager::initializeExtension
Result< void > initializeExtension(const std::string &extensionName, const SBAnyMap &config)
Initializes an extension with the given configuration.
switchboard::ExtensionManager::getInstance
static ExtensionManager & getInstance()
Gets the shared instance of the ExtensionManager.
switchboard::ExtensionManager::registerExtension
void registerExtension(std::shared_ptr< Extension > extension)
Registers an extension.
switchboard::ExtensionManager::deinitializeExtension
Result< void > deinitializeExtension(const std::string &extensionName)
Deinitializes an extension.
switchboard::ExtensionManager::getExtensionNames
std::vector< std::string > getExtensionNames() const
Returns the names of all currently registered (loaded) extensions, both compiled-in and dynamically l...
SwitchboardSDK
include
switchboard_core
ExtensionManager.hpp
Generated by
1.17.0