XROAD
fix_msg.h
Go to the documentation of this file.
1 
5 #pragma once
6 
7 #include "fix_parser_fwd.h"
8 #include "fix_error.h"
9 #include <common/xroad_aux.h>
10 #include <common/xroad_string.h>
12 #include <stdint.h>
13 
14 #ifdef __cplusplus
15 extern "C"
16 {
17 #endif
18 
19 #define FIX_MSG_CHECK_CRC 0x01
20 #define FIX_MSG_CHECK_REQUIRED 0x02
21 #define FIX_MSG_CHECK_VALUE 0x04
22 #define FIX_MSG_CHECK_VERSION 0x08
23 #define FIX_MSG_CHECK_ALL FIX_MSG_CHECK_CRC | FIX_MSG_CHECK_REQUIRED | FIX_MSG_CHECK_VALUE | \
24  FIX_MSG_CHECK_VERSION
25 
33 void* fix_msg_create(fix_parser_t* parser, int32_t msg_type, fix_error_t** error);
34 
38 void fix_msg_destroy(void* msg);
39 
43 #define __fix_msg_dtor__ __dtor__(fix_utils_msg_destructor)
44 
50 int32_t fix_msg_get_type(void* msg);
51 
58 
66 xroad_errno_t fix_msg_check(void* msg, int32_t flags, fix_error_t** error);
67 
76 xroad_errno_t fix_msg_get_int32(void* obj, int32_t tag_num, int32_t* val, fix_error_t** error);
77 
86 xroad_errno_t fix_msg_get_int64(void* obj, int32_t tag_num, int64_t* val, fix_error_t** error);
87 
96 xroad_errno_t fix_msg_set_int(void* obj, int32_t tag_num, int64_t val, fix_error_t** error);
97 
106 xroad_errno_t fix_msg_get_double(void* obj, int32_t tag_num, double* val, fix_error_t** error);
107 
117 xroad_errno_t fix_msg_set_double_prec(void* obj, int32_t tag_num, double val, uint32_t prec, fix_error_t** error);
118 
127 xroad_errno_t fix_msg_set_double(void* obj, int32_t tag_num, double val, fix_error_t** error);
128 
137 xroad_errno_t fix_msg_get_char(void* obj, int32_t tag_num, char* val, fix_error_t** error);
138 
147 xroad_errno_t fix_msg_set_char(void* obj, int32_t tag_num, char val, fix_error_t** error);
148 
157 xroad_errno_t fix_msg_get_str(void* obj, int32_t tag_num, xroad_str_t* val, fix_error_t** error);
158 
167 xroad_errno_t fix_msg_set_str(void* obj, int32_t tag_num, xroad_str_t val, fix_error_t** error);
168 
178 xroad_errno_t fix_msg_get_grp(void* obj, int32_t tag_num, uint32_t grp_idx, void** grp, fix_error_t** error);
179 
188 xroad_errno_t fix_msg_add_grp(void* obj, int32_t tag_num, void** grp, fix_error_t** error);
189 
198 xroad_errno_t fix_msg_del_grp(void* obj, int32_t tag_num, uint32_t grp_idx, fix_error_t** error);
199 
207 xroad_errno_t fix_msg_del_field(void* obj, int32_t tag_num, fix_error_t** error);
208 
217 xroad_errno_t fix_msg_is_set(void* obj, int32_t tag_num, int32_t* res, fix_error_t** error);
218 
219 #define fix_msg_get(msg, tag, ptr, err) _Generic((ptr), \
220  char*: fix_msg_get_char, \
221  int32_t*: fix_msg_get_int32, \
222  int64_t*: fix_msg_get_int64, \
223  double*: fix_msg_get_double, \
224  xroad_str_t*: fix_msg_get_str \
225  )(msg, tag, ptr, err)
226 
227 #define fix_msg_set(msg, tag, val, err) _Generic((val), \
228  char: fix_msg_set_char, \
229  double: fix_msg_set_double, \
230  xroad_str_t: fix_msg_set_str, \
231  default: fix_msg_set_int \
232  )(msg, tag, val, err)
233 
234 #ifdef __cplusplus
235 }
236 #endif
xroad_errno_t fix_msg_set_str(void *obj, int32_t tag_num, xroad_str_t val, fix_error_t **error)
xroad_errno_t fix_msg_set_char(void *obj, int32_t tag_num, char val, fix_error_t **error)
void * fix_msg_create(fix_parser_t *parser, int32_t msg_type, fix_error_t **error)
xroad_errno_t fix_msg_check(void *msg, int32_t flags, fix_error_t **error)
xroad_errno_t fix_msg_del_field(void *obj, int32_t tag_num, fix_error_t **error)
xroad_errno_t fix_msg_is_set(void *obj, int32_t tag_num, int32_t *res, fix_error_t **error)
xroad_errno_t fix_msg_get_char(void *obj, int32_t tag_num, char *val, fix_error_t **error)
xroad_errno_t fix_msg_get_int64(void *obj, int32_t tag_num, int64_t *val, fix_error_t **error)
xroad_errno_t fix_msg_get_grp(void *obj, int32_t tag_num, uint32_t grp_idx, void **grp, fix_error_t **error)
void fix_msg_destroy(void *msg)
xroad_errno_t fix_msg_set_int(void *obj, int32_t tag_num, int64_t val, fix_error_t **error)
int32_t fix_msg_get_type(void *msg)
xroad_errno_t fix_msg_add_grp(void *obj, int32_t tag_num, void **grp, fix_error_t **error)
xroad_errno_t fix_msg_set_double_prec(void *obj, int32_t tag_num, double val, uint32_t prec, fix_error_t **error)
xroad_errno_t fix_msg_set_double(void *obj, int32_t tag_num, double val, fix_error_t **error)
xroad_errno_t fix_msg_get_str(void *obj, int32_t tag_num, xroad_str_t *val, fix_error_t **error)
xroad_errno_t fix_msg_del_grp(void *obj, int32_t tag_num, uint32_t grp_idx, fix_error_t **error)
xroad_str_t fix_msg_get_name(void *msg)
xroad_errno_t fix_msg_get_double(void *obj, int32_t tag_num, double *val, fix_error_t **error)
xroad_errno_t fix_msg_get_int32(void *obj, int32_t tag_num, int32_t *val, fix_error_t **error)
Definition: fix_error_priv.h:22
Definition: fix_parser_priv.h:29
Definition: xroad_string.h:29