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>
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);
Component manager interface.
Definition IComponentManager.h:55
virtual void onUnload(IComponentPlugin &plugin)=0
Unloads a plugin and all components using it.
const IEnumerable< ComponentInfo > & components() const
Returns component infos.
Definition IComponentManager.h:86
virtual void onLoadInstance(const std::string &instanceId)=0
Loads a component instance.
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.
virtual void onLoad()=0
Loads all registered components.
void registerComponent(IComponentPlugin &plugin, const std::string &require, const std::string &instance)
Registers component.
Definition IComponentManager.h:130
void load()
Loads all registered components.
Definition IComponentManager.h:139
virtual const IEnumerable< ComponentInfo > & onGetComponents() const =0
Returns component infos.
void unload(IComponentPlugin &plugin)
Unloads a component plugin.
Definition IComponentManager.h:151
virtual ~IComponentManager()
Destructor.
Definition IComponentManager.h:59
Component plugin interface.
Definition IComponentPlugin.h:51
virtual void onDetach(IComponentManager &cm, const std::string &instance)=0
The plugin is detached from a component manager.
virtual void onAttach(IComponentManager &cm, const std::string &instance)=0
The plugin is attached to a component manager.
Enumerable interface.
Definition IEnumerable.h:58
Interface base class.
Definition IUnknown.h:44
Cosmo Component Model.
Definition Api.h:53
Core module.
Definition Allocator.h:33