29 enum class Kind : uint8_t {
52 std::expected<void, std::string>
connect(
const std::string& host, uint16_t port,
53 std::chrono::milliseconds
timeout);
62 std::span<const uint8_t> data,
63 std::chrono::milliseconds
timeout);
70 std::unique_ptr<Impl> impl_;
Definition spoe_connection.h:43
SpoeConnection & operator=(const SpoeConnection &)=delete
void close()
Closes the connection. Waits for a request in progress to finish first.
Definition spoe_connection.cc:146
std::expected< Frame, ConnectionError > request(MessageType type, uint16_t status, std::span< const uint8_t > data, std::chrono::milliseconds timeout)
Sends one request and waits up to timeout for its reply.
Definition spoe_connection.cc:155
bool isOpen() const
Definition spoe_connection.cc:151
std::expected< void, std::string > connect(const std::string &host, uint16_t port, std::chrono::milliseconds timeout)
Opens the connection. An open connection is closed first.
Definition spoe_connection.cc:113
uint64_t discardedReplies() const
The replies discarded because they matched no request in progress.
Definition spoe_connection.cc:153
SpoeConnection(const SpoeConnection &)=delete
SpoeConnection()
Definition spoe_connection.cc:109
~SpoeConnection()
Definition spoe_connection.cc:111
Definition spoe_connection.cc:15
MessageType
The message types the firmware handles. A reply carries the type of its request.
Definition spoe_frame.h:20
std::chrono::milliseconds timeout
Definition somanet_procedures.cc:464
Definition spoe_connection.h:28
Kind
Definition spoe_connection.h:29
@ kInvalidRequest
The request could not be encoded, so nothing was sent. The connection stays open.
@ kTimeout
No matching reply arrived in time. The connection stays open.
Kind kind
Definition spoe_connection.h:39
std::string message
Definition spoe_connection.h:40
Definition spoe_connection.cc:54