-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTradingEngineServer.hpp
More file actions
27 lines (19 loc) · 1.02 KB
/
TradingEngineServer.hpp
File metadata and controls
27 lines (19 loc) · 1.02 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
#pragma once
#include "Orderbook.hpp"
#include "trading_optimized.grpc.pb.h"
class TradingEngineServer final : public trading::TradingEngine::Service {
private:
std::shared_ptr<Orderbook> orderbook_;
[[nodiscard]] OrderType ParseOrderType(trading::OrderType type);
[[nodiscard]] Side ParseSide(::trading::Side side);
public:
TradingEngineServer(std::shared_ptr<Orderbook> orderbook) : orderbook_(std::move(orderbook)) {}
grpc::Status AddOrder(grpc::ServerContext *context, const trading::OrderRequest *request,
trading::TradeResponse *response) override;
grpc::Status CancelOrder(grpc::ServerContext *context, const trading::CancelOrderRequest *request,
trading::CancelOrderResponse *response) override;
grpc::Status ModifyOrder(grpc::ServerContext *context, const trading::ModifyOrderRequest *request,
trading::TradeResponse *response) override;
grpc::Status GetOrderbook(grpc::ServerContext *context, const trading::OrderbookRequest *request,
trading::OrderbookResponse *response) override;
};