#include <RemotePorts.hpp>
Public Member Functions | |
base::PortInterface * | antiClone () const |
base::ChannelElementBase::shared_ptr | buildRemoteChannelOutput (base::OutputPortInterface &output_port, types::TypeInfo const *type, base::InputPortInterface &reader_, ConnPolicy const &policy) |
virtual bool | channelReady (base::ChannelElementBase::shared_ptr channel, ConnPolicy const &policy) |
base::PortInterface * | clone () const |
base::DataSourceBase * | getDataSource () |
RemoteInputPort (types::TypeInfo const *type_info, CDataFlowInterface_ptr dataflow, std::string const &name, PortableServer::POA_ptr poa) | |
Protected Member Functions | |
virtual bool | addConnection (internal::ConnID *port_id, base::ChannelElementBase::shared_ptr channel_input, ConnPolicy const &policy) |
Private Types | |
typedef std::map < base::ChannelElementBase *, RTT::corba::CChannelElement_var > | ChannelMap |
Private Attributes | |
ChannelMap | channel_map |
Proxy for a remote input port. Since it inherits from ConnFactory, it also allows for building an output endpoint. You can not access its datasource.
Definition at line 123 of file RemotePorts.hpp.
typedef std::map<base::ChannelElementBase*,RTT::corba::CChannelElement_var> RTT::corba::RemoteInputPort::ChannelMap [private] |
Definition at line 126 of file RemotePorts.hpp.
RemoteInputPort::RemoteInputPort | ( | types::TypeInfo const * | type_info, |
CDataFlowInterface_ptr | dataflow, | ||
std::string const & | name, | ||
PortableServer::POA_ptr | poa | ||
) |
Definition at line 111 of file RemotePorts.cpp.
virtual bool RTT::corba::RemoteInputPort::addConnection | ( | internal::ConnID * | port_id, |
base::ChannelElementBase::shared_ptr | channel_input, | ||
ConnPolicy const & | policy | ||
) | [inline, protected, virtual] |
The ConnectionFactory calls this. Overload to do nothing when dealing with remote ports.
port_id | |
channel_input | |
policy |
Reimplemented from RTT::corba::RemotePort< base::InputPortInterface >.
Definition at line 136 of file RemotePorts.hpp.
RTT::base::PortInterface * RemoteInputPort::antiClone | ( | ) | const [virtual] |
Create a local clone of this port with the same name. If this port is a local port, this is an object of the inverse direction (read for write and write for read), and same name. If this object is a remote port, then it is a local port of the inverse direction and with the same name.
Implements RTT::base::PortInterface.
Definition at line 200 of file RemotePorts.cpp.
RTT::base::ChannelElementBase::shared_ptr RemoteInputPort::buildRemoteChannelOutput | ( | base::OutputPortInterface & | output_port, |
types::TypeInfo const * | type, | ||
base::InputPortInterface & | reader_, | ||
RTT::ConnPolicy const & | policy | ||
) | [virtual] |
This method will do more than just building the output half, it will create the two crucial ChannelElements on both sides of the CORBA connection to marshal/demarshal the channel data. The policy is used to determine if storage must be allocated remotely or (has been allocated) locally. reader_ is ignored and must be this.
output_port | The local port that will be sending data to the remote channel. |
type | The type of data to transport |
reader_ | Ignored. Must be this. |
policy | The policy for the ConnFactory. |
Reimplemented from RTT::base::InputPortInterface.
Definition at line 120 of file RemotePorts.cpp.
bool RemoteInputPort::channelReady | ( | base::ChannelElementBase::shared_ptr | channel, |
RTT::ConnPolicy const & | policy | ||
) | [virtual] |
For remote input port objects, this is forwarded to the other end over the Data Flow Interface. The given channel must be the output endpoint of a connection, which was built using buildRemoteChannelOutput. So channel->getOutputEndpoint() == channel
Reimplemented from RTT::base::InputPortInterface.
Definition at line 204 of file RemotePorts.cpp.
RTT::base::PortInterface * RemoteInputPort::clone | ( | ) | const [virtual] |
Create a local clone of this port with the same name. If this port is a local port, this is an object of the same type and same name. If this object is a remote port, then it is a local port of the same type and same name.
Implements RTT::base::PortInterface.
Definition at line 197 of file RemotePorts.cpp.
RTT::base::DataSourceBase * RemoteInputPort::getDataSource | ( | ) | [virtual] |
Returns a DataSourceBase interface to read this port. The returned data source is always a new object.
Implements RTT::base::InputPortInterface.
Definition at line 117 of file RemotePorts.cpp.
Definition at line 127 of file RemotePorts.hpp.