27#ifndef COSMO_COMPONENT_MANAGER_H
28#define COSMO_COMPONENT_MANAGER_H
30#include <Pt/Cosmo/Component.h>
31#include <Pt/Cosmo/ComponentPlugin.h>
32#include <Pt/Cosmo/IComponentManager.h>
33#include <Pt/Cosmo/Enumerable.h>
78 const std::string& require,
79 const std::string& instanceId);
87 void load(
const std::string& instanceId);
95 void unload(
const std::string& instanceId);
102 class ComponentManagerPlugin* _plugin;
103 class ComponentManagerImpl* _impl;
108class ComponentManagerFactory
120 void destroy(Component* instance)
124 ComponentManager* _cm;
130 ComponentManagerFactory>
133 static const char* FeatureId()
134 {
return "Cosmo.ComponentManager"; }
136 static const char* ClassId()
137 {
return "Cosmo.ComponentManager"; }
139 static const char* Info()
140 {
return "Cosmo.Default"; }
143 ComponentManagerPlugin(ComponentManager& cm);
Component information holder.
Definition ComponentInfo.h:53
Default component manager.
Definition ComponentManager.h:53
void unload(const std::string &instanceId)
Unloads a component by instance ID.
const IEnumerable< ComponentInfo > & components() const
Enumerates all components.
void load(const std::string &instanceId)
Loads registered component.
void setModulesDir(const std::string &dir)
Set modules search directory.
void load()
Loads all registered components.
void unload(IComponentPlugin &plugin)
Unloads a component plugin.
ComponentManager()
Constructor.
~ComponentManager()
Destructor.
void registerComponent(IComponentPlugin &plugin, const std::string &require, const std::string &instanceId)
Registers component.
void importComponents(const std::string &manifest)
Imports all components from manifest.
Default component plugin.
Definition ComponentPlugin.h:105
Component plugin interface.
Definition IComponentPlugin.h:51
Enumerable interface.
Definition IEnumerable.h:58
Cosmo Component Model.
Definition Api.h:53
Core module.
Definition Allocator.h:33