#pragma once #include #include // used to map strings enum class OrderBookType { bid, ask, unknown, asksale, bidsale }; static const std::map 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; };