27 #ifndef COSMO_COMPONENT_MANAGER_INTERFACE_H
28 #define COSMO_COMPONENT_MANAGER_INTERFACE_H
30 #include <Pt/Cosmo/Api.h>
31 #include <Pt/Cosmo/IUnknown.h>
32 #include <Pt/Cosmo/ComponentInfo.h>
33 #include <Pt/Cosmo/IEnumerable.h>
43 class IComponentPlugin;
65 const std::string& require,
66 const std::string& instance);
74 void load(
const std::string& instance);
82 void unload(
const std::string& instanceId);
95 const std::string& require,
96 const std::string& instance) = 0;
124 #include <Pt/Cosmo/IComponentPlugin.h>
131 const std::string& require,
132 const std::string& instance)
162 plugin->
onDetach(*
this, instanceId);
Core module.
Definition: Allocator.h:33
Enumerable interface.
Definition: IEnumerable.h:58
virtual void onLoadInstance(const std::string &instanceId)=0
Loads a component instance.
virtual void onAttach(IComponentManager &cm, const std::string &instance)=0
The plugin is attached to a component manager.
virtual void onDetach(IComponentManager &cm, const std::string &instance)=0
The plugin is detached from a component manager.
void unload(IComponentPlugin &plugin)
Unloads a component plugin.
Definition: IComponentManager.h:151
Component plugin interface.
Definition: IComponentPlugin.h:51
Interface base class.
Definition: IUnknown.h:44
Component manager interface.
Definition: IComponentManager.h:55
virtual void onLoad()=0
Loads all registered components.
virtual void onUnload(IComponentPlugin &plugin)=0
Unloads a plugin and all components using it.
void load()
Loads all registered components.
Definition: IComponentManager.h:139
virtual void onRegisterComponent(IComponentPlugin &plugin, const std::string &require, const std::string &instance)=0
Registers component.
virtual IComponentPlugin * onUnloadInstance(const std::string &instanceId)=0
Unloads a component instance.
void registerComponent(IComponentPlugin &plugin, const std::string &require, const std::string &instance)
Registers component.
Definition: IComponentManager.h:130
virtual const IEnumerable< ComponentInfo > & onGetComponents() const =0
Returns component infos.
virtual ~IComponentManager()
Destructor.
Definition: IComponentManager.h:59
const IEnumerable< ComponentInfo > & components() const
Returns component infos.
Definition: IComponentManager.h:86