#include <cache/xroad_objects.h>
#include <stdbool.h>
#include "mdata_proto.h"
Go to the source code of this file.
|
typedef struct mdata_book_s | mdata_book_t |
|
typedef void(* | book_order_func_t) (xroad_object_id_t, int64_t, xroad_side_t, xroad_price_t, xroad_qty_t, xroad_timestamp_t ts, void *) |
|
typedef void(* | book_level_func_t) (int32_t, xroad_side_t, xroad_price_t, xroad_qty_t, void *) |
|
|
enum | mdata_book_action_t {
book_order_add = 1
, book_order_update = 2
, book_order_delete = 3
, book_add = 4
,
book_update = 5
, book_delete = 6
, book_order_filled = 7
} |
|
|
mdata_book_t * | mdata_book_create (xroad_instr_t *instr) |
|
void | mdata_book_destroy (mdata_book_t *book) |
|
void | mdata_book_clear (mdata_book_t *book) |
|
int32_t | mdata_book_update (mdata_book_t *book, mdata_book_action_t action, xroad_price_t price, xroad_qty_t qty, xroad_side_t side, xroad_timestamp_t ts) |
|
int32_t | mdata_book_order_update (mdata_book_t *book, mdata_book_action_t action, int64_t order_id, xroad_price_t price, xroad_qty_t qty, xroad_side_t side, xroad_timestamp_t ts) |
|
xroad_instr_t * | mdata_book_get_instr (mdata_book_t *book) |
|
bool | mdata_book_is_crossed (mdata_book_t *book) |
|
bool | mdata_book_is_empty (mdata_book_t *book) |
|
void | mdata_book_get_orders (mdata_book_t *book, book_order_func_t cback, void *ctx) |
|
void | mdata_book_get_levels (mdata_book_t *book, xroad_side_t side, int32_t num, book_level_func_t cback, void *ctx) |
|
void | mdata_book_print (mdata_book_t *book) |
|
void | mdata_quote_update_book (mdata_quote_t *quote, mdata_book_t *book) |
|
void | mdata_book_20_update_book (mdata_book_20_t *book_20, mdata_book_t *book, bool auto_fix) |
|
int | mdata_book_get_qflag (mdata_book_t *book) |
|
void | mdata_book_reset_qflag (mdata_book_t *book) |
|
◆ book_level_func_t
typedef void(* book_level_func_t) (int32_t, xroad_side_t, xroad_price_t, xroad_qty_t, void *) |
◆ book_order_func_t
typedef void(* book_order_func_t) (xroad_object_id_t, int64_t, xroad_side_t, xroad_price_t, xroad_qty_t, xroad_timestamp_t ts, void *) |
◆ mdata_book_20_update_book()
void mdata_book_20_update_book |
( |
mdata_book_20_t * |
book_20, |
|
|
mdata_book_t * |
book, |
|
|
bool |
auto_fix |
|
) |
| |
converts
- See also
- mdata_book_t to
-
mdata_book_20_t
- Parameters
-
[out] | book | - pointer to mdata_book_20_t |
[in] | book | - pointer to mdata_book_t |
[in] | auto_fix | - if true fixes crossed book |
◆ mdata_book_clear()
void mdata_book_clear |
( |
mdata_book_t * |
book | ) |
|
removes all book entries
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_create()
mdata_book_t* mdata_book_create |
( |
xroad_instr_t * |
instr | ) |
|
creates book with dynamic qty of levels
- Parameters
-
[in] | instr | - book instrument returns pointer to book |
◆ mdata_book_destroy()
void mdata_book_destroy |
( |
mdata_book_t * |
book | ) |
|
destroys book
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_get_instr()
xroad_instr_t* mdata_book_get_instr |
( |
mdata_book_t * |
book | ) |
|
gets instrument of the book
- Parameters
-
[in] | book | - pointer to book |
- Returns
- instument of the book
◆ mdata_book_get_levels()
void mdata_book_get_levels |
( |
mdata_book_t * |
book, |
|
|
xroad_side_t |
side, |
|
|
int32_t |
num, |
|
|
book_level_func_t |
cback, |
|
|
void * |
ctx |
|
) |
| |
returns true if best bid >= best ask
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_get_orders()
void mdata_book_get_orders |
( |
mdata_book_t * |
book, |
|
|
book_order_func_t |
cback, |
|
|
void * |
ctx |
|
) |
| |
returns true if best bid >= best ask
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_is_crossed()
bool mdata_book_is_crossed |
( |
mdata_book_t * |
book | ) |
|
returns true if best bid >= best ask
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_is_empty()
bool mdata_book_is_empty |
( |
mdata_book_t * |
book | ) |
|
returns true if book is empty
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_order_update()
int32_t mdata_book_order_update |
( |
mdata_book_t * |
book, |
|
|
mdata_book_action_t |
action, |
|
|
int64_t |
order_id, |
|
|
xroad_price_t |
price, |
|
|
xroad_qty_t |
qty, |
|
|
xroad_side_t |
side, |
|
|
xroad_timestamp_t |
ts |
|
) |
| |
updates book with new data, sorts levels
- Parameters
-
[in] | book | - pointer to book |
[in] | action | - update action |
[in] | order_id | - id of order |
[in] | price | - the price |
[in] | qty | - the quantity |
[in] | side | - side[buy=1, sell=2] |
- Returns
- 1 - if best bid or best aks have changed, otherwise 0
◆ mdata_book_print()
void mdata_book_print |
( |
mdata_book_t * |
book | ) |
|
prints book in log with debug log levels
- Parameters
-
[in] | book | - pointer to book |
◆ mdata_book_update()
int32_t mdata_book_update |
( |
mdata_book_t * |
book, |
|
|
mdata_book_action_t |
action, |
|
|
xroad_price_t |
price, |
|
|
xroad_qty_t |
qty, |
|
|
xroad_side_t |
side, |
|
|
xroad_timestamp_t |
ts |
|
) |
| |
updates book with new data, sorts levels
- Parameters
-
[in] | book | - pointer to book |
[in] | action | - update action |
[in] | price | - the price |
[in] | qty | - the quantity |
[in] | side | - side[buy=1, sell=2] |
- Returns
- 1 - if best bid or best aks have changed, otherwise 0
◆ mdata_quote_update_book()
void mdata_quote_update_book |
( |
mdata_quote_t * |
quote, |
|
|
mdata_book_t * |
book |
|
) |
| |
converts mdata_book_t to mdata_quote_t
- Parameters
-
[out] | book | - quote pointer to mdata_quote_t |
[in] | book | - pointer to mdata_book_t |