CCAFFEINE
0.8.8
|
00001 #ifndef __COMPONENTINFO_H__ 00002 #define __COMPONENTINFO_H__ 00003 #include <string> 00004 // class Gizzard; 00005 // 00006 namespace ccafe { 00007 class CmpBox; 00008 } // end namespace ccafe fwd decl of cmpbox 00009 00010 class ComponentInfo; 00011 00012 typedef boost::shared_ptr< ComponentInfo > ComponentInfo_shared; 00013 00019 class ComponentInfo { 00020 private: 00021 00022 boost::shared_ptr< ::ccafe::CmpBox > box; 00023 00024 public: 00025 00026 ComponentInfo( boost::shared_ptr< ::ccafe::CmpBox > b); 00027 00028 00030 const std::string getClassName(); 00031 00032 virtual ~ComponentInfo(); 00033 00035 const std::string getInstanceName(); 00036 00039 const ::std::vector< UserPortData > & getUsesPortRegister(); 00040 00043 const ::std::vector< ProviderPortData > & getProvidesPorts(); 00044 00045 ::std::vector< ConnectionID_ptr > getUsesConnections(); 00046 00047 00049 ::ccafeopq::TypeMap_shared getComponentPropertyTypeMap(); 00050 00052 void setComponentPropertyTypeMap(::ccafeopq::TypeMap_shared tm); 00053 00055 ::ccafeopq::TypeMap_shared 00056 getPortPropertyTypeMap(const std::string & portname); 00057 00059 void setPortPropertyTypeMap(const std::string & portname, 00060 ::ccafeopq::TypeMap_shared tm); 00061 00062 std::string toString(); 00063 00064 static ComponentInfo_shared wrapCmpBox( boost::shared_ptr< ::ccafe::CmpBox > b); 00065 00066 static std::vector < ComponentInfo_shared > wrapCmpBoxVector( std::vector< ccafe::CmpBox_shared > & bvec); 00067 00068 static std::map < std::string, ComponentInfo_shared > wrapCmpBoxMap( std::map< std::string, ccafe::CmpBox_shared > & bmap); 00069 00070 }; 00071 00072 typedef boost::shared_ptr< ComponentInfo > ComponentInfo_shared; 00073 #endif // __COMPONENTINFO_H__