00001 // -*- C++ -*- 00020 #ifndef RTC_LOCAL_IRTOBJECT_H 00021 #define RTC_LOCAL_IRTOBJECT_H 00022 00023 #include <vector> 00024 #include <rtc/IRTC.h> 00025 #include <rtc/ILightweightRTObject.h> 00026 00027 namespace RTC 00028 { 00029 namespace Local 00030 { 00031 class PortProfile; 00032 typedef std::vector<PortProfile*> PortProfileList; 00033 00034 class IPortService; 00035 typedef std::vector<IPortService*> PortServiceList; 00036 00037 class IRTObject; 00038 00039 struct ComponentProfile 00040 { 00041 char* instance_name; 00042 char* type_name; 00043 char* description; 00044 char* version; 00045 char* vendor; 00046 char* category; 00047 PortProfileList port_profiles; 00048 IRTObject* parent; 00049 NVList properties; 00050 }; 00051 00061 class IRTObject 00062 : public virtual ILightweightRTObject 00063 // public SDOPackage::SDO 00064 { 00065 public: 00066 virtual ~IRTObject() {}; 00067 virtual const ComponentProfile& get_component_profile() = 0; 00068 virtual PortServiceList& get_ports() = 0; 00069 }; 00070 }; // namespace Local 00071 }; // namespace RTC 00072 #endif // RTC_LOCAL_IRTOBJECT_H