NEOCCA bindings Specification  0.2.8
ComponentFactory.hh
Go to the documentation of this file.
00001 #ifndef neo_ports_ComponentFactory_hh_seen
00002 #define neo_ports_ComponentFactory_hh_seen
00003 namespace neo {
00004 namespace cca {
00005 namespace ports {
00006 
00007 
00008 //===================================================================
00009 //===================================================================
00010 
00014 class ComponentFactory : public virtual neo::cca::Port
00015 {
00016 public:
00017         
00018   virtual ~ComponentFactory() {}
00019 
00024   virtual std::vector< std::string> getComponentClassAliases()= 0;
00025 
00028   virtual std::vector< ComponentClassDescription_shared > getAvailableComponentClasses()= 0;
00029 
00030   virtual neo::cca::Component * createComponentInstance(const std::string & classAlias)= 0;
00031 
00032   virtual neo::cca::Component * createComponentInstance(const std::string & classAlias, neo::cca::TypeMap_shared & properties)= 0;
00033 
00034   virtual void destroyComponentInstance(const std::string & componentClassAlias, neo::cca::Component * component)= 0;
00035 
00036 }; // end class ComponentFactory
00037 
00038 
00039 }  // end namespace ports
00040 }  // end namespace cca
00041 }  // end namespace neo
00042 
00043 #endif // neo_ports_ComponentFactory_hh_seen