-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTypes.h
More file actions
57 lines (47 loc) · 1.07 KB
/
Copy pathTypes.h
File metadata and controls
57 lines (47 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#pragma once
#include <map>
#include <unordered_map>
enum class OrderPlaceEventResult
{
OrderPlaced,
OrderCancelled,
OrderMatched
};
enum class OrderCancelEventResult
{
OrderCancelled,
OrderNotFound
};
using NumericType = uint32_t;
using OrderID = uint64_t;
enum class OrderType
{
Bid,
Ask
};
struct Order
{
std::string market;
NumericType price{0};
NumericType volume{0};
OrderType type{OrderType::Bid};
bool operator !=(const Order& rhs) const
{
return std::tie(market, price, volume, type)
!= std::tie(rhs.market, rhs.price, rhs.volume, rhs.type);
}
};
struct MatchedOrder
{
std::string market;
OrderID bidSideOrderID;
OrderID askSideOrderID;
NumericType price{0};
NumericType volume{0};
OrderType type{OrderType::Bid};
bool operator !=(const MatchedOrder& rhs) const
{
return std::tie(market, bidSideOrderID, askSideOrderID, price, volume, type)
!= std::tie(rhs.market, rhs.bidSideOrderID, rhs.askSideOrderID, rhs.price, rhs.volume, rhs.type);
}
};