Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
rte_ipc_request_reply.h
Go to the documentation of this file.
1
23
24#ifndef RTE_IPC_REQUEST_REPLY_H
25#define RTE_IPC_REQUEST_REPLY_H
26
29#include "rte_ipc.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35/* ============================================================================
36 * Request-Reply Channel (Server Side)
37 * ========================================================================== */
38
42typedef struct rte_ipc_rr_server_s *rte_ipc_rr_server_t;
43
47typedef struct {
48 const char *name;
49 size_t request_size;
50 size_t reply_size;
51 size_t queue_depth;
53
57typedef struct {
58 uint32_t request_id;
59 uint8_t *request_data;
60 size_t request_size;
62
83 const rte_ipc_rr_server_config_t *config);
84
106 rte_ipc_rr_request_t *request_out,
107 rte_duration_ms_t timeout_ms);
108
130 uint32_t request_id,
131 const void *reply_data,
132 size_t reply_size);
133
141
142/* ============================================================================
143 * Request-Reply Client (Client Side)
144 * ========================================================================== */
145
149typedef struct rte_ipc_rr_client_s *rte_ipc_rr_client_t;
150
154typedef struct {
155 const char *server_name;
157 size_t reply_size;
159
180 const rte_ipc_rr_client_config_t *config);
181
218 const void *request_data,
219 size_t request_size,
220 void *reply_out,
221 size_t reply_size,
222 rte_duration_ms_t timeout_ms);
223
231
232#ifdef __cplusplus
233}
234#endif
235
236#endif /* RTE_IPC_REQUEST_REPLY_H */
rte_status_t
Common result/status codes.
Definition rte_status.h:27
uint32_t rte_duration_ms_t
Definition rte_types.h:27
OS Abstraction Layer - Inter-process/inter-task communication service.
rte_status_t rte_ipc_rr_client_destroy(rte_ipc_rr_client_t client)
Destroy request-reply client connection.
rte_status_t rte_ipc_rr_send_reply(rte_ipc_rr_server_t server, uint32_t request_id, const void *reply_data, size_t reply_size)
Send reply to a request.
rte_status_t rte_ipc_rr_server_destroy(rte_ipc_rr_server_t server)
Destroy request-reply server.
rte_status_t rte_ipc_rr_server_create(rte_ipc_rr_server_t *handle_out, const rte_ipc_rr_server_config_t *config)
Create a request-reply server channel.
rte_status_t rte_ipc_rr_receive_request(rte_ipc_rr_server_t server, rte_ipc_rr_request_t *request_out, rte_duration_ms_t timeout_ms)
Receive a request (blocking with timeout).
struct rte_ipc_rr_server_s * rte_ipc_rr_server_t
Request-Reply server channel handle.
struct rte_ipc_rr_client_s * rte_ipc_rr_client_t
Request-reply client handle.
rte_status_t rte_ipc_rr_request(rte_ipc_rr_client_t client, const void *request_data, size_t request_size, void *reply_out, size_t reply_size, rte_duration_ms_t timeout_ms)
Send request and wait for reply (blocking with timeout).
rte_status_t rte_ipc_rr_client_create(rte_ipc_rr_client_t *handle_out, const rte_ipc_rr_client_config_t *config)
Create a request-reply client connection.
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
Common fixed-width types and the caller-owned-storage handle pattern used by every OAL service (see A...
Configuration for request-reply client.
Incoming request with context for sending reply.
Configuration for request-reply server.