00001 #ifndef __COMPONENTINFO_H__
00002 #define __COMPONENTINFO_H__
00003 #include <string>
00004
00005
00006 namespace ccafe {
00007 class CmpBox;
00008 }
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__