Class ClientPortRouDi
Defined in File client_port_roudi.hpp
Inheritance Relationships
Base Type
public iox::popo::BasePort(Class BasePort)
Class Documentation
-
class ClientPortRouDi : public iox::popo::BasePort
The ClientPortRouDi provides the API for accessing a client port from the RouDi middleware daemon side. The client port is divided in the three parts ClientPortData, ClientPortRouDi and ClientPortUser. The ClientPortRouDi provides service discovery functionality that is based on CaPro messages. With this API the dynamic connections between clients and servers ports can be established.
Note
This class is not thread-safe and must be guarded by a mutex if used in a multithreaded context.
Public Types
-
using MemberType_t = ClientPortData
Public Functions
-
explicit ClientPortRouDi(MemberType_t &clientPortData) noexcept
Creates a ClientPortRouDi from ClientPortData which are shared with ClientPortUser.
- Parameters:
clientPortData – [in] to be are accessed by the ClientPortRouDi interface
-
ClientPortRouDi(const ClientPortRouDi &other) = delete
-
ClientPortRouDi &operator=(const ClientPortRouDi&) = delete
-
ClientPortRouDi(ClientPortRouDi &&rhs) noexcept = default
-
ClientPortRouDi &operator=(ClientPortRouDi &&rhs) noexcept = default
-
~ClientPortRouDi() = default
-
QueueFullPolicy getResponseQueueFullPolicy() const noexcept
Access to the configured responseQueueFullPolicy.
- Returns:
the configured responseQueueFullPolicy
-
ConsumerTooSlowPolicy getServerTooSlowPolicy() const noexcept
Access to the configured serverTooSlowPolicy.
- Returns:
the configured serverTooSlowPolicy
-
cxx::optional<capro::CaproMessage> tryGetCaProMessage() noexcept
get an optional CaPro message that requests changes to the desired connection state of the client
- Returns:
CaPro message with desired connection state, empty optional if no state change
-
cxx::optional<capro::CaproMessage> dispatchCaProMessageAndGetPossibleResponse(const capro::CaproMessage &caProMessage) noexcept
dispatch a CaPro message to the client for processing
- Parameters:
caProMessage – [in] to process
- Returns:
CaPro message with an immediate response the provided CaPro message, empty optional if no response
-
void releaseAllChunks() noexcept
cleanup the client and release all the chunks it currently holds
- Attention
Contract is that user process is no more running when cleanup is called
-
using MemberType_t = ClientPortData