Safe Communication Framework 0.1.0 build feea4f9
ERTMS/ETCS safe communication (Subset-037 EuroRadio, Subset-098 RBC/RBC), CENELEC EN 50128 SIL 4 oriented
Loading...
Searching...
No Matches
transport.h
Go to the documentation of this file.
1
18#ifndef SAFECOMM_TRANSPORT_H
19#define SAFECOMM_TRANSPORT_H
20
21#include <stddef.h>
22#include <stdint.h>
23
24#include "safecomm/status.h"
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
38typedef safecomm_status_t (*safecomm_transport_send_fn)(void *user, const uint8_t *buf, size_t len);
39
49typedef safecomm_status_t (*safecomm_transport_recv_fn)(void *user, uint8_t *buf, size_t cap, size_t *out_len);
50
52typedef void (*safecomm_transport_close_fn)(void *user);
53
62
75 const char *host, uint16_t port,
76 uint32_t recv_timeout_ms);
77
83typedef struct
84{
85 void *channel;
86 uint32_t recv_timeout_ms;
88
117 void *channel,
118 uint32_t recv_timeout_ms);
119
120#ifdef __cplusplus
121}
122#endif
123
124#endif /* SAFECOMM_TRANSPORT_H */
Common status codes for the Safe Communication Framework.
safecomm_status_t
Result of a Safe Communication Framework operation.
Definition status.h:17
Caller-owned storage for safecomm_transport_from_channel_service. No dynamic memory (MISRA): the call...
Definition transport.h:84
A consumer-supplied bearer the SaF layer runs over.
Definition transport.h:56
safecomm_transport_send_fn send
Definition transport.h:57
safecomm_transport_recv_fn recv
Definition transport.h:58
safecomm_transport_close_fn close
Definition transport.h:59
safecomm_status_t(*) safecomm_transport_send_fn(void *user, const uint8_t *buf, size_t len)
Blocking send of exactly len bytes.
Definition transport.h:38
safecomm_status_t safecomm_transport_oal_tcp(safecomm_transport_t *out, const char *host, uint16_t port, uint32_t recv_timeout_ms)
Populate out with an OAL/TCP transport built on safeAPIFreamwork.
Definition transport.c:99
void(*) safecomm_transport_close_fn(void *user)
Release the underlying bearer. Idempotent.
Definition transport.h:52
safecomm_status_t safecomm_transport_from_channel_service(safecomm_transport_t *out, safecomm_transport_channel_ctx_t *ctx, void *channel, uint32_t recv_timeout_ms)
Populate out with a transport that runs over an already-open, caller-owned Platform_RTE named channel...
Definition transport.c:84
safecomm_status_t(*) safecomm_transport_recv_fn(void *user, uint8_t *buf, size_t cap, size_t *out_len)
Blocking receive of up to cap bytes.
Definition transport.h:49