iceoryx_posh  2.0.2
client_options.hpp
1 // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 // SPDX-License-Identifier: Apache-2.0
16 
17 #ifndef IOX_POSH_POPO_CLIENT_OPTIONS_HPP
18 #define IOX_POSH_POPO_CLIENT_OPTIONS_HPP
19 
20 #include "iceoryx_posh/internal/popo/ports/client_server_port_types.hpp"
21 #include "iceoryx_posh/popo/port_queue_policies.hpp"
22 
23 #include "iceoryx_hoofs/cxx/serialization.hpp"
24 
25 #include <cstdint>
26 
27 namespace iox
28 {
29 namespace popo
30 {
33 {
36  uint64_t responseQueueCapacity{ClientChunkQueueData_t::MAX_CAPACITY};
37 
39  iox::NodeName_t nodeName{""};
40 
42  bool connectOnCreate{true};
43 
46  QueueFullPolicy responseQueueFullPolicy{QueueFullPolicy::DISCARD_OLDEST_DATA};
47 
50  ConsumerTooSlowPolicy serverTooSlowPolicy{ConsumerTooSlowPolicy::DISCARD_OLDEST_DATA};
51 
53  cxx::Serialization serialize() const noexcept;
55  static cxx::expected<ClientOptions, cxx::Serialization::Error>
56  deserialize(const cxx::Serialization& serialized) noexcept;
57 
60  bool operator==(const ClientOptions& rhs) const noexcept;
61 };
62 
63 } // namespace popo
64 } // namespace iox
65 #endif // IOX_POSH_POPO_CLIENT_OPTIONS_HPP
This struct is used to configure the client.
Definition: client_options.hpp:33
QueueFullPolicy responseQueueFullPolicy
The option whether the server should block when the response queue is full.
Definition: client_options.hpp:46
static cxx::expected< ClientOptions, cxx::Serialization::Error > deserialize(const cxx::Serialization &serialized) noexcept
deserialization of the ClientOptions
cxx::Serialization serialize() const noexcept
serialization of the ClientOptions
uint64_t responseQueueCapacity
The size of the response queue where chunks are stored before they are passed to the user.
Definition: client_options.hpp:36
ConsumerTooSlowPolicy serverTooSlowPolicy
The option whether the client should block when the request queue is full.
Definition: client_options.hpp:50
bool connectOnCreate
The option whether the client shall try to connect when creating it.
Definition: client_options.hpp:42
iox::NodeName_t nodeName
The name of the node where the client should belong to.
Definition: client_options.hpp:39