NEOCCA bindings Specification  0.2.8
ComponentFactory.hh
Go to the documentation of this file.
1 #ifndef neo_ports_ComponentFactory_hh_seen
2 #define neo_ports_ComponentFactory_hh_seen
3 namespace neo {
4 namespace cca {
5 namespace ports {
6 
7 
8 //===================================================================
9 //===================================================================
10 
14 class ComponentFactory : public virtual neo::cca::Port
15 {
16 public:
17 
18  virtual ~ComponentFactory() {}
19 
24  virtual std::vector< std::string> getComponentClassAliases()= 0;
25 
28  virtual std::vector< ComponentClassDescription_shared > getAvailableComponentClasses()= 0;
29 
30  virtual neo::cca::Component * createComponentInstance(const std::string & classAlias)= 0;
31 
32  virtual neo::cca::Component * createComponentInstance(const std::string & classAlias, neo::cca::TypeMap_shared & properties)= 0;
33 
34  virtual void destroyComponentInstance(const std::string & componentClassAlias, neo::cca::Component * component)= 0;
35 
36 }; // end class ComponentFactory
37 
38 
39 } // end namespace ports
40 } // end namespace cca
41 } // end namespace neo
42 
43 #endif // neo_ports_ComponentFactory_hh_seen
virtual std::vector< std::string > getComponentClassAliases()=0
Names of classes for which the associated factory can make instances.
boost::shared_ptr< TypeMap > TypeMap_shared
This (TypeMap_shared) is what everyone declares in component code and noone ever calls new on...
Definition: TypeMap.hh:14
Component object model that all Components wishing to use the boost/STL-based memory model must use...
Definition: Component.hh:10
virtual std::vector< ComponentClassDescription_shared > getAvailableComponentClasses()=0
Descriptions of classes we know about.
virtual neo::cca::Component * createComponentInstance(const std::string &classAlias)=0
NOT YET DEFINED IN CCA.SIDL: This is related to, but not the same as, cca ComponentRepository.
Definition: ComponentFactory.hh:14
virtual ~ComponentFactory()
Definition: ComponentFactory.hh:18
A pure-virtual tag interface to identify a function set capable of being exported to or imported from...
Definition: Port.hh:17
virtual void destroyComponentInstance(const std::string &componentClassAlias, neo::cca::Component *component)=0
This is neoclassic – the ::classic::gov::cca headers updated to be similar to the official CCA speci...
Definition: neocca.hh:62