13#ifndef IOX2_PORTFACTORY_WRITER_HPP
14#define IOX2_PORTFACTORY_WRITER_HPP
26template <ServiceType S,
typename KeyType>
32#ifdef DOXYGEN_MACRO_FIX
55 iox2_port_factory_writer_builder_h m_handle =
nullptr;
60 : m_handle { handle } {
63template <ServiceType S,
typename KeyType>
65 if (m_name.has_value()) {
66 const auto* name_ptr = m_name.value().as_view().native_ptr();
67 iox2_port_factory_writer_builder_set_name(&m_handle, name_ptr);
70 iox2_writer_h writer_handle {};
71 auto result = iox2_port_factory_writer_builder_create(m_handle,
nullptr, &writer_handle);
73 if (result == IOX2_OK) {
77 return bb::err(bb::into<WriterCreateError>(result));
#define IOX2_BUILDER_OPTIONAL(type, name)
Represents the port factory of a [Service] with [MessagingPattern::Blackboard].
auto name(const PortName value) -> decltype(auto)
PortFactoryWriter(PortFactoryWriter &&) noexcept=default
auto create() &&-> bb::Expected< Writer< S, KeyType >, WriterCreateError >
Creates a new [Writer] port or returns a [WriterCreateError] on failure.
Represent the name for a [Port].
Producing endpoint of a blackboard based communication.
constexpr auto err(const E &error) -> Unexpected< E >
iox2::bb::variation::Expected< T, E > Expected