CCAFFEINE  0.8.8
ComponentInfo.h
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__