XROAD
mdata_engine.h
Go to the documentation of this file.
1 #pragma once
6 #include "mdata_proto.h"
7 #include "mdata_aux.h"
8 #include <cache/xroad_objects.h>
9 
10 #ifdef __cplusplus
11 extern "C"
12 {
13 #endif
14 
15 #define ANY_SOURCE xroad_str_null
16 
17 typedef struct
18 {
19  void* ctx;
23  void (*on_subscribe_result)(mdata_subscribe_result_t*, void*);
27  void (*on_feed_state)(mdata_feed_state_type_t, void*);
31  void (*on_connected)(void*);
35  void (*on_disconnected)(void*);
42  void (*on_subscribe)(mdata_subscribe_t*, void*, void*);
44 
45 typedef struct
46 {
47  void* ctx;
54  void (*on_mdata)(mdata_proto_type_t, void*, void*);
55 
62  void (*on_feed_state)(xroad_instr_t*, mdata_feed_state_type_t, void*);
63 
65 
66 typedef struct mdata_engine_s mdata_engine_t;
67 
75 mdata_engine_t* mdata_engine_create(xroad_xml_tag_t cfg, mdata_engine_callback_t ccb);
76 
82 xroad_errno_t mdata_engine_start(mdata_engine_t* mdata);
83 
88 void mdata_engine_stop(mdata_engine_t* mdata);
89 
94 void mdata_engine_destroy(mdata_engine_t* mdata);
95 
101 xroad_errno_t mdata_engine_put(mdata_engine_t* mdata, mdata_proto_type_t type, void* val);
102 
108 xroad_errno_t mdata_engine_flush(mdata_engine_t* mdata);
114 xroad_errno_t mdata_engine_send(mdata_engine_t* mdata, mdata_proto_type_t type, void* val);
115 
125  mdata_engine_t* mdata, xroad_instr_t* instr, mdata_subscription_mask_t mask, mdata_callback_t cb,
126  xroad_str_t mdsource);
127 
136 mdata_subscription_mask_t mdata_engine_get_mask(mdata_engine_t* mdata, xroad_instr_t* instr, mdata_callback_t cb);
137 
138 /* *
139  * deactivates mdata channels in case of issues wih mdata feed
140  * @param[in] c - pointer to the mdata_engine_t instance
141  * */
142 xroad_errno_t mdata_engine_deactivate(mdata_engine_t* c);
143 
144 /* *
145  * activates mdata channels
146  * @param[in] c - pointer to the mdata_engine_t instance
147  * */
148 xroad_errno_t mdata_engine_activate(mdata_engine_t* c);
149 
150 /* *
151  * Gets mdata feed state for instrument source
152  * @param[in] me - pointer to the mdata_engine_t instance
153  * */
154 mdata_feed_state_type_t mdata_engine_get_feed_state(mdata_engine_t* me, xroad_instr_t* i, xroad_str_t mdsource);
155 
156 #ifdef __cplusplus
157 }
158 #endif
mdata_engine_t * mdata_engine_create(xroad_xml_tag_t cfg, mdata_engine_callback_t ccb)
mdata_subscription_mask_t mdata_engine_get_mask(mdata_engine_t *mdata, xroad_instr_t *instr, mdata_callback_t cb)
xroad_errno_t mdata_engine_start(mdata_engine_t *mdata)
void mdata_engine_stop(mdata_engine_t *mdata)
xroad_errno_t mdata_engine_flush(mdata_engine_t *mdata)
xroad_errno_t mdata_engine_subscribe(mdata_engine_t *mdata, xroad_instr_t *instr, mdata_subscription_mask_t mask, mdata_callback_t cb, xroad_str_t mdsource)
xroad_errno_t mdata_engine_send(mdata_engine_t *mdata, mdata_proto_type_t type, void *val)
xroad_errno_t mdata_engine_put(mdata_engine_t *mdata, mdata_proto_type_t type, void *val)
void mdata_engine_destroy(mdata_engine_t *mdata)
Definition: mdata_engine.h:46
Definition: mdata_engine.h:18
Definition: mdata_proto.h:97
Definition: mdata_proto.h:90
Definition: xroad_string.h:29
CAUTION: do not change this file - it is autogenerated.