Files

59 lines
1.4 KiB
C++

#pragma once
#include <string>
#include <map> // used to map strings
enum class OrderBookType
{
bid,
ask,
unknown,
asksale,
bidsale
};
static const std::map<OrderBookType, std::string> stringMap =
{
{OrderBookType::ask, "ask"},
{OrderBookType::bid, "bid"},
{OrderBookType::asksale, "asksale"},
{OrderBookType::bidsale, "bidsale"},
{OrderBookType::unknown, "unknown"}
};
class OrderBookEntry
{
public:
OrderBookEntry(double _price,
double _amount,
std::string _timestamp,
std::string _product,
OrderBookType _orderType,
std::string username = "dataset");
static OrderBookType stringToOrderBookType(std::string s);
/** returns the string representation of an OrderBookType */
static std::string OrderBookTypeToString(OrderBookType s);
static bool compareByTimestamp(OrderBookEntry &e1, OrderBookEntry &e2)
{
return e1.timestamp < e2.timestamp;
}
static bool compareByPriceAsc(OrderBookEntry &e1, OrderBookEntry &e2)
{
return e1.price < e2.price;
}
static bool compareByPriceDesc(OrderBookEntry &e1, OrderBookEntry &e2)
{
return e1.price > e2.price;
}
double price;
double amount;
std::string timestamp;
std::string product;
OrderBookType orderType;
std::string username;
};