Safe API Framework
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
sapi_ipc_pubsub.h
Go to the documentation of this file.
1
46
47#ifndef SAFEAPI_IPC_PUBSUB_H
48#define SAFEAPI_IPC_PUBSUB_H
49
52#include "sapi_ipc.h"
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58/* ============================================================================
59 * Publish-Subscribe Topic
60 * ========================================================================== */
61
65typedef struct sapi_ipc_pubsub_topic_s *sapi_ipc_pubsub_topic_t;
66
70typedef struct {
71 const char *topic_name;
72 size_t message_size;
75
98 const sapi_ipc_pubsub_topic_config_t *config);
99
124 const void *message,
125 size_t message_size);
126
134
135/* ============================================================================
136 * Subscriber (Receiver Side)
137 * ========================================================================== */
138
142typedef struct sapi_ipc_pubsub_subscriber_s *sapi_ipc_pubsub_subscriber_t;
143
152
178
206 void *message_out,
207 size_t message_size,
208 sapi_duration_ms_t timeout_ms);
209
217
218#ifdef __cplusplus
219}
220#endif
221
222#endif /* SAFEAPI_IPC_PUBSUB_H */
sapi_status_t
Common result/status codes.
Definition sapi_status.h:27
uint32_t sapi_duration_ms_t
Definition sapi_types.h:27
OS Abstraction Layer - Inter-process/inter-task communication service.
sapi_status_t sapi_ipc_pubsub_subscribe(sapi_ipc_pubsub_subscriber_t *subscriber_out, const sapi_ipc_pubsub_subscriber_config_t *config)
Subscribe to a topic.
sapi_status_t sapi_ipc_pubsub_topic_create(sapi_ipc_pubsub_topic_t *topic_out, const sapi_ipc_pubsub_topic_config_t *config)
Create a publish-subscribe topic.
sapi_status_t sapi_ipc_pubsub_receive(sapi_ipc_pubsub_subscriber_t subscriber, void *message_out, size_t message_size, sapi_duration_ms_t timeout_ms)
Receive a message from subscribed topic (blocking with timeout).
sapi_status_t sapi_ipc_pubsub_unsubscribe(sapi_ipc_pubsub_subscriber_t subscriber)
Unsubscribe from a topic.
struct sapi_ipc_pubsub_subscriber_s * sapi_ipc_pubsub_subscriber_t
Subscriber handle for receiving from a topic.
struct sapi_ipc_pubsub_topic_s * sapi_ipc_pubsub_topic_t
Publish-subscribe topic handle.
sapi_status_t sapi_ipc_pubsub_topic_destroy(sapi_ipc_pubsub_topic_t topic)
Destroy a publish-subscribe topic.
sapi_status_t sapi_ipc_pubsub_publish(sapi_ipc_pubsub_topic_t topic, const void *message, size_t message_size)
Publish a message to all subscribers on a topic.
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 a subscriber.
Configuration for a pub-sub topic.