InPortBase.h

説明を見る。
00001 // -*- C++ -*-
00020 #ifndef RTC_INPORTBASE_H
00021 #define RTC_INPORTBASE_H
00022 
00023 #include <rtm/PortBase.h>
00024 #include <rtm/DataPortStatus.h>
00025 #include <rtm/CdrBufferBase.h>
00026 
00041 namespace RTC
00042 {
00043   class InPortProvider;
00044   class OutPortConsumer;
00045   class InPortConnector;
00046 
00066   class InPortBase
00067     : public PortBase, public DataPortStatus
00068   {
00069   public:
00070     DATAPORTSTATUS_ENUM
00071 
00072     typedef std::vector<InPortConnector*> ConnectorList;
00073 
00098     InPortBase(const char* name, const char* data_type);
00099     
00113     virtual ~InPortBase(void);
00114     
00115     coil::Properties& properties();
00116 
00117     void init();
00118 
00135     virtual void activateInterfaces();
00136 
00153     virtual void deactivateInterfaces();
00154 
00155   protected:
00184     virtual ReturnCode_t
00185     publishInterfaces(ConnectorProfile& connector_profile);
00186     
00214     virtual ReturnCode_t
00215     subscribeInterfaces(const ConnectorProfile& connector_profile);
00216     
00238     virtual void
00239     unsubscribeInterfaces(const ConnectorProfile& connector_profile);
00240 
00241 
00249     void initProviders();
00250 
00258     void initConsumers();
00259 
00271     InPortProvider*
00272     createProvider(ConnectorProfile& cprof, coil::Properties& prop);
00273 
00285     OutPortConsumer*
00286     createConsumer(const ConnectorProfile& cprof, coil::Properties& prop);
00287 
00299     InPortConnector*
00300     createConnector(ConnectorProfile& cprof, coil::Properties& prop,
00301                     InPortProvider* provider);
00313     InPortConnector*
00314     createConnector(const ConnectorProfile& cprof, coil::Properties& prop,
00315                     OutPortConsumer* consumer);
00316   protected:
00317     bool m_singlebuffer;
00318     CdrBufferBase* m_thebuffer;
00319     coil::Properties m_properties;
00320     coil::vstring m_providerTypes;
00321     coil::vstring m_consumerTypes;
00322     ConnectorList m_connectors;
00323   };
00324 }; // namespace RTC
00325 
00326 #endif // RTC_INPORTBASE_H

OpenRTMに対してSun May 24 14:08:25 2009に生成されました。  doxygen 1.5.3