asrt
Automated System Runtime Testing library
Loading...
Searching...
No Matches
stream.h
1
11#ifndef ASRT_STREAM_H
12#define ASRT_STREAM_H
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#include "../asrtl/chann.h"
19#include "../asrtl/stream_proto.h"
20
21#include <stdint.h>
22
23typedef void ( *asrt_stream_done_cb )( void* ptr, enum asrt_status status );
24
28
30{
31 uint8_t schema_id;
32 uint8_t field_count;
33 enum asrt_strm_field_type_e const* fields;
34};
35
38{
39 enum asrt_status send_status;
40};
41
42enum asrt_stream_client_state
43{
44 ASRT_STRM_IDLE = 0,
45 ASRT_STRM_DEFINE_SEND = 1,
46 ASRT_STRM_WAIT = 2,
47 ASRT_STRM_DONE = 3,
48 ASRT_STRM_ERROR = 4,
49};
50
53{
54 struct asrt_node node;
55
56 enum asrt_stream_client_state state;
57 enum asrt_strm_err_e err_code;
58
59 asrt_stream_done_cb done_cb;
61
62 struct asrt_strm_define_msg define_msg;
63 struct asrt_strm_data_msg data_msg;
64
65 union
66 {
67 struct asrt_stream_pending_define define;
68 struct asrt_stream_pending_done done;
69 } op;
70};
71
73enum asrt_status asrt_stream_client_init(
74 struct asrt_stream_client* client,
75 struct asrt_node* prev );
76
78void asrt_stream_client_deinit( struct asrt_stream_client* client );
79
83enum asrt_status asrt_stream_client_define(
84 struct asrt_stream_client* client,
85 uint8_t schema_id,
86 enum asrt_strm_field_type_e const* fields,
87 uint8_t field_count,
88 asrt_stream_done_cb done_cb,
89 void* done_cb_ptr );
90
94enum asrt_status asrt_stream_client_emit(
95 struct asrt_stream_client* client,
96 uint8_t schema_id,
97 uint8_t const* data,
98 uint16_t data_size,
99 asrt_stream_done_cb done_cb,
100 void* done_cb_ptr );
101
104enum asrt_status asrt_stream_client_reset( struct asrt_stream_client* client );
105
106#ifdef __cplusplus
107}
108#endif
109
110#endif // ASRT_STREAM_H
A node in a doubly-linked channel chain.
Definition: chann.h:122
Reactor-side stream client (ASRT_STRM channel).
Definition: stream.h:53
enum asrt_strm_err_e err_code
valid when state == ASRT_STRM_ERROR.
Definition: stream.h:57
void * done_cb_ptr
user context for done_cb.
Definition: stream.h:60
asrt_stream_done_cb done_cb
user callback, fired in DONE state.
Definition: stream.h:59
Pending define operation.
Definition: stream.h:30
Completed-send state. Holds the transport result.
Definition: stream.h:38
Send DATA message from reactor to controller.
Definition: stream_proto.h:154
Send DEFINE message from reactor to controller.
Definition: stream_proto.h:122