OpenRTM-aist  1.2.1
InPortBase.h
Go to the documentation of this file.
1 // -*- C++ -*-
20 #ifndef RTC_INPORTBASE_H
21 #define RTC_INPORTBASE_H
22 
23 #include <rtm/PortBase.h>
24 #include <rtm/DataPortStatus.h>
25 #include <rtm/CdrBufferBase.h>
26 #include <rtm/ConnectorListener.h>
27 #include <rtm/OutPortBase.h>
28 
29 #ifdef WIN32
30 #pragma warning( push )
31 #pragma warning( disable : 4290 )
32 #endif
33 
34 
49 namespace RTC
50 {
51  class InPortProvider;
52  class OutPortConsumer;
53  class InPortConnector;
54 
74  class InPortBase
75  : public PortBase, public DataPortStatus
76  {
77  public:
79 
80  typedef std::vector<InPortConnector*> ConnectorList;
81 
101  InPortBase(const char* name, const char* data_type);
102 
116  virtual ~InPortBase(void);
117 
133  void init(coil::Properties& prop);
134 
149  virtual bool read() = 0;
150 
167 
186  const std::vector<InPortConnector*>& connectors();
187 
207 
227 
247 
268  InPortConnector* getConnectorById(const char* id);
269 
290  InPortConnector* getConnectorByName(const char* name);
291 
314  bool getConnectorProfileById(const char* id,
315  ConnectorInfo& prof);
316 
339  bool getConnectorProfileByName(const char* name,
340  ConnectorInfo& prof);
341 
342 
359  virtual void activateInterfaces();
360 
377  virtual void deactivateInterfaces();
378 
455  ConnectorDataListener* listener,
456  bool autoclean = true);
457 
458 
479  ConnectorDataListener* listener);
480 
481 
534  void addConnectorListener(ConnectorListenerType callback_type,
535  ConnectorListener* listener,
536  bool autoclean = true);
537 
558  ConnectorListener* listener);
559 
577  bool isLittleEndian();
578 
604  virtual ReturnCode_t
605  connect(ConnectorProfile& connector_profile)
606  throw (CORBA::SystemException);
607 
625  virtual ConnectorListeners& getListeners();
626  virtual ReturnCode_t notify_connect(ConnectorProfile& connector_profile)
627  throw (CORBA::SystemException);
628 
629  protected:
630 
659  virtual ReturnCode_t
660  publishInterfaces(ConnectorProfile& connector_profile);
661 
689  virtual ReturnCode_t
690  subscribeInterfaces(const ConnectorProfile& connector_profile);
691 
713  virtual void
714  unsubscribeInterfaces(const ConnectorProfile& connector_profile);
715 
716 
724  void initProviders();
725 
733  void initConsumers();
734 
766  bool checkEndian(const coil::Properties& prop, bool& littleEndian);
767 
780  createProvider(ConnectorProfile& cprof, coil::Properties& prop);
781 
794  createConsumer(const ConnectorProfile& cprof, coil::Properties& prop);
795 
808  createConnector(ConnectorProfile& cprof, coil::Properties& prop,
809  InPortProvider* provider);
822  createConnector(const ConnectorProfile& cprof, coil::Properties& prop,
823  OutPortConsumer* consumer);
824  protected:
832  OutPortBase* getLocalOutPort(const ConnectorInfo& profile);
880  ConnectorList m_connectors;
889 
898  };
899 }; // namespace RTC
900 
901 #ifdef WIN32
902 #pragma warning( pop )
903 #endif
904 
905 #endif // RTC_INPORTBASE_H
RTC&#39;s Port base class.
InPortConnector * getConnectorById(const char *id)
Getting ConnectorProfile by ID.
ConnectorListeners class.
Definition: ConnectorListener.h:1217
bool checkEndian(const coil::Properties &prop, bool &littleEndian)
Checking endian flag of serializer.
virtual void activateInterfaces()
Activate all Port interfaces.
virtual void deactivateInterfaces()
Deactivate all Port interfaces.
InPortConnector base class.
Definition: InPortConnector.h:51
virtual void unsubscribeInterfaces(const ConnectorProfile &connector_profile)
Disconnect the interface connection.
#define DATAPORTSTATUS_ENUM
Importing RTC::DataPortStatus macro.
Definition: DataPortStatus.h:233
DataPortStatus class.
CdrBufferBase * m_thebuffer
Buffer.
Definition: InPortBase.h:856
RT-Component.
virtual ReturnCode_t notify_connect(ConnectorProfile &connector_profile)
[CORBA interface] Notify the Ports connection
coil::Properties & properties()
Get properties.
ConnectorListener class.
Definition: ConnectorListener.h:831
ConnectorDataListener class.
Definition: ConnectorListener.h:401
Definition: ConnectorBase.h:43
ConnectorListeners m_listeners
ConnectorDataListener listener.
Definition: InPortBase.h:897
virtual ~InPortBase(void)
Destructor.
std::vector< ConnectorInfo > ConnectorInfoList
Definition: ConnectorBase.h:129
bool isLittleEndian()
return it whether endian setting.
coil::vstring m_providerTypes
Available providers.
Definition: InPortBase.h:864
coil::vstring m_consumerTypes
Available consumers.
Definition: InPortBase.h:872
InPortProvider.
Definition: InPortProvider.h:190
std::vector< std::string > vstring
Definition: stringutil.h:45
ConnectorDataListenerType
The types of ConnectorDataListener.
Definition: ConnectorListener.h:138
virtual ConnectorListeners & getListeners()
Getting listeners holder.
bool m_littleEndian
Connected Endian.
Definition: InPortBase.h:888
Port base class.
Definition: PortBase.h:135
DATAPORTSTATUS_ENUM typedef std::vector< InPortConnector * > ConnectorList
Definition: InPortBase.h:80
void removeConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener)
Removing BufferDataListener type listener.
InPortBase(const char *name, const char *data_type)
Constructor.
virtual ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)
Subscribe to the interface.
bool getConnectorProfileById(const char *id, ConnectorInfo &prof)
Getting ConnectorProfile by name.
Output base class.
Definition: OutPortBase.h:235
ConnectorInfoList getConnectorProfiles()
ConnectorProfile list.
void initProviders()
InPort provider initialization.
coil::vstring getConnectorIds()
ConnectorId list.
bool getConnectorProfileByName(const char *name, ConnectorInfo &prof)
Getting ConnectorProfile by name.
void addConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true)
Adding ConnectorListener type listener.
Port for InPort.
Definition: InPortBase.h:74
InPortProvider * createProvider(ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation.
virtual ReturnCode_t publishInterfaces(ConnectorProfile &connector_profile)
Publish interface information.
void initConsumers()
OutPort consumer initialization.
InPortBase base class.
ConnectorListenerType
The types of ConnectorListener.
Definition: ConnectorListener.h:618
Class represents a set of properties.
Definition: Properties.h:101
void removeConnectorListener(ConnectorListenerType callback_type, ConnectorListener *listener)
Removing BufferDataListener type listener.
OutPortConsumer abstract class.
Definition: OutPortConsumer.h:171
OutPortBase * getLocalOutPort(const ConnectorInfo &profile)
Getting local peer OutPort if available.
coil::vstring getConnectorNames()
Connector name list.
void init(coil::Properties &prop)
Initializing properties.
bool m_singlebuffer
Buffer mode.
Definition: InPortBase.h:848
OutPortConsumer * createConsumer(const ConnectorProfile &cprof, coil::Properties &prop)
InPort provider creation.
virtual ReturnCode_t connect(ConnectorProfile &connector_profile)
[CORBA interface] Connect the Port
DataPortStatus mixin class.
Definition: DataPortStatus.h:54
BufferBase abstract class.
Definition: BufferBase.h:104
InPortConnector * createConnector(ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
InPortPushConnector creation.
virtual bool read()=0
It is a virtual method that is called from RTObject_impl::readAll(). This method reads out data from ...
connector listener class
void addConnectorDataListener(ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
Adding BufferDataListener type listener.
ConnectorList m_connectors
Connection list.
Definition: InPortBase.h:880
const std::vector< InPortConnector * > & connectors()
Connector list.
InPortConnector * getConnectorByName(const char *name)
Getting Connector by name.