Class PoshRuntimeImpl

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class PoshRuntimeImpl : public iox::runtime::PoshRuntime

The runtime that is needed for each application to communicate with the RouDi daemon.

Subclassed by iox::runtime::PoshRuntimeSingleProcess

Public Functions

PoshRuntimeImpl(const PoshRuntimeImpl&) = delete
PoshRuntimeImpl &operator=(const PoshRuntimeImpl&) = delete
PoshRuntimeImpl(PoshRuntimeImpl&&) = delete
PoshRuntimeImpl &operator=(PoshRuntimeImpl&&) = delete
virtual ~PoshRuntimeImpl() noexcept
virtual PublisherPortUserType::MemberType_t *getMiddlewarePublisher(const capro::ServiceDescription &service, const popo::PublisherOptions &publisherOptions = popo::PublisherOptions(), const PortConfigInfo &portConfigInfo = PortConfigInfo()) noexcept override

request the RouDi daemon to create a publisher port

Parameters:
  • serviceDescription[in] service description for the new publisher port

  • publisherOptions[in] like the history capacity of a publisher

  • portConfigInfo[in] configuration information for the port (i.e. what type of port is requested, device where its payload memory is located on etc.)

Returns:

pointer to a created publisher port user

virtual SubscriberPortUserType::MemberType_t *getMiddlewareSubscriber(const capro::ServiceDescription &service, const popo::SubscriberOptions &subscriberOptions = popo::SubscriberOptions(), const PortConfigInfo &portConfigInfo = PortConfigInfo()) noexcept override

request the RouDi daemon to create a subscriber port

Parameters:
  • serviceDescription[in] service description for the new subscriber port

  • subscriberOptions[in] like the queue capacity and history requested by a subscriber

  • portConfigInfo[in] configuration information for the port (what type of port is requested, device where its payload memory is located on etc.)

Returns:

pointer to a created subscriber port data

virtual popo::ClientPortUser::MemberType_t *getMiddlewareClient(const capro::ServiceDescription &service, const popo::ClientOptions &clientOptions = {}, const PortConfigInfo &portConfigInfo = PortConfigInfo()) noexcept override

request the RouDi daemon to create a client port

Parameters:
  • serviceDescription[in] service description for the new client port

  • clientOptions[in] like the queue capacity and queue full policy by a client

  • portConfigInfo[in] configuration information for the port (what type of port is requested, device where its payload memory is located on etc.)

Returns:

pointer to a created client port data

virtual popo::ServerPortUser::MemberType_t *getMiddlewareServer(const capro::ServiceDescription &service, const popo::ServerOptions &ServerOptions = {}, const PortConfigInfo &portConfigInfo = PortConfigInfo()) noexcept override

request the RouDi daemon to create a server port

Parameters:
  • serviceDescription[in] service description for the new server port

  • serverOptions[in] like the queue capacity and queue full policy by a server

  • portConfigInfo[in] configuration information for the port (what type of port is requested, device where its payload memory is located on etc.)

Returns:

pointer to a created server port data

virtual popo::InterfacePortData *getMiddlewareInterface(const capro::Interfaces interface, const NodeName_t &nodeName = {""}) noexcept override

request the RouDi daemon to create an interface port

Parameters:
  • interface[in] interface to create

  • nodeName[in] name of the node where the interface should belong to

Returns:

pointer to a created interface port data

virtual popo::ConditionVariableData *getMiddlewareConditionVariable() noexcept override

request the RouDi daemon to create a condition variable

Returns:

pointer to a created condition variable data

virtual NodeData *createNode(const NodeProperty &nodeProperty) noexcept override

request the RouDi daemon to create a node

Parameters:

nodeProperty[in] class which contains all properties which the node should have

Returns:

pointer to the data of the node

virtual bool sendRequestToRouDi(const IpcMessage &msg, IpcMessage &answer) noexcept override

send a request to the RouDi daemon and get the response currently each request is followed by a response

Parameters:
  • msg[in] request message to send

  • response[out] from the RouDi daemon

Returns:

true if sucessful request/response, false on error

Protected Functions

PoshRuntimeImpl(cxx::optional<const RuntimeName_t*> name, const RuntimeLocation location = RuntimeLocation::SEPARATE_PROCESS_FROM_ROUDI) noexcept

Friends

friend class PoshRuntime
friend class roudi::RuntimeTestInterface