XROAD
instrdb.h
1 
6 #pragma once
7 
10 #include <cache/xroad_objects.h>
11 #include <common/xroad_string.h>
12 #include <stdbool.h>
13 
14 #ifdef __cplusplus
15 extern "C"
16 {
17 #endif
18 
19 #define instrdb_make_name(name, board, exch) \
20 ({ \
21  xroad_str_t name1977 = (name); \
22  xroad_str_t board1977 = (board); \
23  xroad_str_t exch1977 = xroad_exchange_get_name(exch); \
24  size_t buf_len = name1977.len + board1977.len + exch1977.len + 2; \
25  char* buf = alloca(buf_len); \
26  buf_len = xroad_format(buf, buf_len, "%P.%zP.%P", name1977, board1977, exch1977); \
27  xroad_str_len(buf, buf_len); \
28 })
29 
33 typedef struct instrdb_s instrdb_t;
34 
39 instrdb_t* instrdb_create();
40 
46 xroad_errno_t instrdb_reconfig(instrdb_t* idb);
47 
52 void instrdb_destroy(instrdb_t* idb);
53 
60 xroad_instr_t* instrdb_get_by_alias(instrdb_t* idb, xroad_str_t alias);
61 
70 xroad_instr_t* instrdb_get_by_name(instrdb_t* idb, xroad_str_t name, xroad_str_t board, const xroad_exchange_t* exch);
71 
81 xroad_instr_t* instrdb_get_by_isin(instrdb_t* idb, xroad_str_t isin, xroad_str_t board, const xroad_exchange_t* exch,
82  const xroad_currency_t* curr);
83 
90 xroad_instr_t* instrdb_get_by_id(instrdb_t* idb, xroad_object_id_t id);
91 
98 xroad_instr_t* instrdb_get_by_exch_id(instrdb_t* idb, xroad_object_id_t id);
99 
109 xroad_instr_t* instrdb_add(instrdb_t* idb, xroad_str_t alias, xroad_str_t name, xroad_str_t board,
110  xroad_exchange_t* exch, bool* created);
111 
112 #ifdef __cplusplus
113 }
114 #endif
Definition: xroad_string.h:29
CAUTION: do not change this file - it is autogenerated.