XROAD
proto.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include "proto/c/proto/xroad_proto_reader.h"
9 #include "proto/xroad_proto_builder.h"
11 #include <common/xroad_string.h>
13 #include <cache/xroad_objects.h>
14 #include <node/xroad_node.h>
16 
17 #ifdef __cplusplus
18 extern "C"
19 {
20 #endif
21 
22 typedef struct proto_s proto_t;
23 
24 typedef struct
25 {
26  char* data;
27  size_t len;
29 
34 proto_t* proto_create();
35 
40 void proto_destroy(proto_t* proto);
41 
49 xroad_str_t proto_to_json(proto_t* p, const char* buf, size_t len);
50 
54 proto_encoded_data_t proto_encode_request_failed(proto_t* proto, uint32_t req_id, xroad_str_t reason);
55 
59 proto_encoded_data_t proto_encode_instr(proto_t* proto, uint32_t req_id, xroad_instr_t* instr, bool is_last);
60 
65  proto_t* p, int64_t clord_id, xroad_rej_reason_t reason, xroad_str_t text);
66 
71  proto_t* p, int64_t clord_id, xroad_rej_reason_t reason, xroad_str_t text);
72 
77  proto_t* p, int64_t clord_id, xroad_rej_reason_t reason, xroad_str_t text);
78 
82 proto_encoded_data_t proto_encode_pong(proto_t* p, xroad_proto_Ping_table_t tbl);
83 
87 proto_encoded_data_t proto_encode_order_accepted(proto_t* p, int64_t clord_id, xroad_accepted_t* msg);
88 
92 proto_encoded_data_t proto_encode_order_canceled(proto_t* p, int64_t clord_id, xroad_canceled_t* msg);
93 
97 proto_encoded_data_t proto_encode_trade(proto_t* p, xroad_order_rabbit_t* rorder, xroad_trade_t* msg);
98 
102 proto_encoded_data_t proto_encode_trd_capt(proto_t* p, xroad_trd_capt_t* msg);
103 
107 proto_encoded_data_t proto_encode_order_replaced(proto_t* p, xroad_order_rabbit_t* rorder, xroad_replaced_t* replaced);
108 
112 proto_encoded_data_t proto_encode_acc_positions(proto_t* p, const xroad_acc_pos_t* acc_pos);
113 
118  proto_t* p, int32_t req_id, xroad_proto_SubsResult_enum_t subs_res);
119 
123 proto_encoded_data_t proto_encode_ping(proto_t* p, int32_t req_id, uint64_t ts);
124 
129 
133 proto_encoded_data_t proto_encode_acc_balances(proto_t* p, const xroad_acc_balance_t* acc_bal);
134 
139  proto_t* p, int32_t req_id, xroad_proto_SubsResult_enum_t subs_res);
140 
144 proto_encoded_data_t proto_encode_order_status(proto_t* p, int64_t clord_id, xroad_proto_OrdStatus_enum_t ord_status,
145  double qty, double fill_qty, double avg_px, xroad_str_t reason);
146 
151  xroad_str_t field_name, xroad_time_t value);
152 
156 proto_encoded_data_t proto_encode_prop_update_int(proto_t* p, int32_t req_id, const xroad_node_data_t* ndata,
157  xroad_str_t field_name, int64_t value);
158 
162 proto_encoded_data_t proto_encode_prop_update_str(proto_t* p, int32_t req_id, const xroad_node_data_t* ndata,
163  xroad_str_t field_name, xroad_str_t value);
164 
169  xroad_str_t field_name, double value);
170 
174 #define proto_encode_prop_update(p, req_id, node, field_name, value) _Generic((value), \
175  int8_t: proto_encode_prop_update_int, \
176  int16_t: proto_encode_prop_update_int, \
177  int32_t: proto_encode_prop_update_int, \
178  int64_t: proto_encode_prop_update_int, \
179  xroad_str_t: proto_encode_prop_update_str, \
180  double: proto_encode_prop_update_double \
181  )(p, req_id, node, field_name, value)
182 
186 proto_encoded_data_t proto_encode_prop_error(proto_t* p, int32_t req_id, const xroad_node_data_t* ndata,
187  xroad_str_t field_name, xroad_str_t reason);
188 
192 proto_encoded_data_t proto_encode_action_response(proto_t* p, int32_t req_id, bool result, xroad_str_t reason);
193 
198  xroad_proto_MdType_enum_t type, xroad_proto_FieldId_enum_t field_id, xroad_str_t indicator,
199  xroad_proto_SubsResult_enum_t result);
200 
204 proto_encoded_data_t proto_encode_md_trade(proto_t* p, xroad_instr_t* instr, mdata_trade_t* trade, xroad_str_t source);
205 
209 proto_encoded_data_t proto_encode_md_quote(proto_t* p, xroad_instr_t* instr, mdata_quote_t* quote, xroad_str_t source);
210 
214 proto_encoded_data_t proto_encode_md_book(proto_t* p, xroad_instr_t* instr, mdata_book_20_t* book, xroad_str_t source);
215 
219 proto_encoded_data_t proto_encode_md_field(proto_t* p, xroad_instr_t* instr, mdata_common_info_t* cinfo,
220  xroad_proto_FieldId_enum_t field, xroad_str_t source);
221 
225 proto_encoded_data_t proto_encode_md_indicator(proto_t* p, xroad_instr_t* instr, mdata_indicator_t* indicator,
226  xroad_str_t type, xroad_str_t source);
227 
232  proto_t* p, int32_t req_id, xroad_proto_SubsResult_enum_t subs_res);
233 
238 
239 #ifdef __cplusplus
240 }
241 #endif
proto_encoded_data_t proto_encode_prop_update_double(proto_t *p, int32_t req_id, const xroad_node_data_t *ndata, xroad_str_t field_name, double value)
proto_encoded_data_t proto_encode_request_failed(proto_t *proto, uint32_t req_id, xroad_str_t reason)
proto_encoded_data_t proto_encode_trd_capt(proto_t *p, xroad_trd_capt_t *msg)
proto_encoded_data_t proto_encode_md_quote(proto_t *p, xroad_instr_t *instr, mdata_quote_t *quote, xroad_str_t source)
proto_encoded_data_t proto_encode_md_subs_result(proto_t *p, uint32_t req_id, xroad_str_t alias, xroad_proto_MdType_enum_t type, xroad_proto_FieldId_enum_t field_id, xroad_str_t indicator, xroad_proto_SubsResult_enum_t result)
proto_encoded_data_t proto_encode_acc_positions(proto_t *p, const xroad_acc_pos_t *acc_pos)
proto_encoded_data_t proto_encode_action_response(proto_t *p, int32_t req_id, bool result, xroad_str_t reason)
proto_encoded_data_t proto_encode_md_trade(proto_t *p, xroad_instr_t *instr, mdata_trade_t *trade, xroad_str_t source)
proto_encoded_data_t proto_encode_acc_pos_subs_result(proto_t *p, int32_t req_id, xroad_proto_SubsResult_enum_t subs_res)
xroad_str_t proto_to_json(proto_t *p, const char *buf, size_t len)
proto_encoded_data_t proto_encode_sw_message(proto_t *p, mdata_speedway_t *speedway)
proto_encoded_data_t proto_encode_trade(proto_t *p, xroad_order_rabbit_t *rorder, xroad_trade_t *msg)
proto_encoded_data_t proto_encode_replace_rejected(proto_t *p, int64_t clord_id, xroad_rej_reason_t reason, xroad_str_t text)
proto_encoded_data_t proto_encode_md_field(proto_t *p, xroad_instr_t *instr, mdata_common_info_t *cinfo, xroad_proto_FieldId_enum_t field, xroad_str_t source)
proto_encoded_data_t proto_encode_order_replaced(proto_t *p, xroad_order_rabbit_t *rorder, xroad_replaced_t *replaced)
proto_encoded_data_t proto_encode_cancel_rejected(proto_t *p, int64_t clord_id, xroad_rej_reason_t reason, xroad_str_t text)
proto_encoded_data_t proto_encode_acc_bal_subs_result(proto_t *p, int32_t req_id, xroad_proto_SubsResult_enum_t subs_res)
proto_encoded_data_t proto_encode_prop_update_time(proto_t *p, int32_t req_id, const xroad_node_data_t *ndata, xroad_str_t field_name, xroad_time_t value)
proto_t * proto_create()
proto_encoded_data_t proto_encode_pong(proto_t *p, xroad_proto_Ping_table_t tbl)
proto_encoded_data_t proto_encode_md_book(proto_t *p, xroad_instr_t *instr, mdata_book_20_t *book, xroad_str_t source)
proto_encoded_data_t proto_encode_acc_balances(proto_t *p, const xroad_acc_balance_t *acc_bal)
proto_encoded_data_t proto_encode_order_accepted(proto_t *p, int64_t clord_id, xroad_accepted_t *msg)
proto_encoded_data_t proto_encode_heartbeat(proto_t *p, uint64_t ts)
proto_encoded_data_t proto_encode_prop_update_str(proto_t *p, int32_t req_id, const xroad_node_data_t *ndata, xroad_str_t field_name, xroad_str_t value)
proto_encoded_data_t proto_encode_order_canceled(proto_t *p, int64_t clord_id, xroad_canceled_t *msg)
proto_encoded_data_t proto_encode_md_indicator(proto_t *p, xroad_instr_t *instr, mdata_indicator_t *indicator, xroad_str_t type, xroad_str_t source)
proto_encoded_data_t proto_encode_sw_subs_result(proto_t *p, int32_t req_id, xroad_proto_SubsResult_enum_t subs_res)
proto_encoded_data_t proto_encode_order_rejected(proto_t *p, int64_t clord_id, xroad_rej_reason_t reason, xroad_str_t text)
proto_encoded_data_t proto_encode_instr(proto_t *proto, uint32_t req_id, xroad_instr_t *instr, bool is_last)
proto_encoded_data_t proto_encode_order_status(proto_t *p, int64_t clord_id, xroad_proto_OrdStatus_enum_t ord_status, double qty, double fill_qty, double avg_px, xroad_str_t reason)
proto_encoded_data_t proto_encode_prop_update_int(proto_t *p, int32_t req_id, const xroad_node_data_t *ndata, xroad_str_t field_name, int64_t value)
proto_encoded_data_t proto_encode_ping(proto_t *p, int32_t req_id, uint64_t ts)
proto_encoded_data_t proto_encode_prop_error(proto_t *p, int32_t req_id, const xroad_node_data_t *ndata, xroad_str_t field_name, xroad_str_t reason)
void proto_destroy(proto_t *proto)
Definition: mdata_proto.h:107
Definition: mdata_proto.h:197
Definition: mdata_proto.h:239
Definition: mdata_proto.h:118
Definition: mdata_proto.h:248
Definition: mdata_proto.h:130
Definition: proto.h:25
Definition: xroad_system.h:132
Definition: xroad_string.h:29
Definition: xroad_time.h:26
CAUTION: do not change this file - it is autogenerated.
CAUTION: do not change this file - it is autogenerated.