220 if (m_backpressure_strategy.has_value()) {
221 iox2_port_factory_server_builder_backpressure_strategy(
222 &m_handle,
static_cast<iox2_backpressure_strategy_e
>(iox2::bb::into<int>(m_backpressure_strategy.value())));
224 if (m_max_slice_len.has_value()) {
225 iox2_port_factory_server_builder_set_initial_max_slice_len(&m_handle, m_max_slice_len.value());
227 iox2_port_factory_server_builder_set_initial_max_slice_len(&m_handle, 1);
229 if (m_max_loaned_responses_per_request.has_value()) {
230 iox2_port_factory_server_builder_set_max_loaned_responses_per_request(
231 &m_handle, m_max_loaned_responses_per_request.value());
233 if (m_allocation_strategy.has_value()) {
234 iox2_port_factory_server_builder_set_allocation_strategy(
235 &m_handle, bb::into<iox2_allocation_strategy_e>(m_allocation_strategy.value()));
237 if (m_override_preallocation_callback.has_value()) {
242 iox2_port_factory_server_builder_override_responses_preallocation(
246 if (m_request_degradation_handler.has_value()) {
247 iox2_port_factory_server_builder_set_request_degradation_handler(
251 if (m_response_degradation_handler.has_value()) {
252 iox2_port_factory_server_builder_set_response_degradation_handler(
255 static_cast<void*
>(m_response_degradation_handler.value()));
258 if (m_backpressure_handler.has_value()) {
259 iox2_port_factory_server_builder_set_backpressure_handler(
263 if (m_name.has_value()) {
264 const auto* name_ptr = m_name.value().as_view().native_ptr();
265 iox2_port_factory_server_builder_set_name(&m_handle, name_ptr);
268 iox2_server_h server_handle {};
269 auto result = iox2_port_factory_server_builder_create(m_handle,
nullptr, &server_handle);
271 if (result == IOX2_OK) {
275 return bb::err(bb::into<ServerCreateError>(result));
auto create() &&-> bb::Expected< Server< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >, ServerCreateError >
Creates a new [Server] or returns a [ServerCreateError] on failure.