#include "system/stream.h"
#include <iostream>
{
protected:
void onAddSymbol(
const Symbol& symbol)
override
{ std::cout << "Add symbol: " << symbol << std::endl; }
void onDeleteSymbol(
const Symbol& symbol)
override
{ std::cout << "Delete symbol: " << symbol << std::endl; }
void onAddOrderBook(
const OrderBook& order_book)
override
{ std::cout << "Add order book: " << order_book << std::endl; }
void onUpdateOrderBook(
const OrderBook& order_book,
bool top)
override
{ std::cout << "Update order book: " << order_book << (top ? " - Top of the book!" : "") << std::endl; }
void onDeleteOrderBook(
const OrderBook& order_book)
override
{ std::cout << "Delete order book: " << order_book << std::endl; }
void onAddLevel(
const OrderBook& order_book,
const Level& level,
bool top)
override
{ std::cout << "Add level: " << level << (top ? " - Top of the book!" : "") << std::endl; }
void onUpdateLevel(
const OrderBook& order_book,
const Level& level,
bool top)
override
{ std::cout << "Update level: " << level << (top ? " - Top of the book!" : "") << std::endl; }
void onDeleteLevel(
const OrderBook& order_book,
const Level& level,
bool top)
override
{ std::cout << "Delete level: " << level << (top ? " - Top of the book!" : "") << std::endl; }
void onAddOrder(
const Order& order)
override
{ std::cout << "Add order: " << order << std::endl; }
void onUpdateOrder(
const Order& order)
override
{ std::cout << "Update order: " << order << std::endl; }
void onDeleteOrder(
const Order& order)
override
{ std::cout << "Delete order: " << order << std::endl; }
void onExecuteOrder(
const Order& order, uint64_t price, uint64_t quantity)
override
{ std::cout << "Execute order: " << order << " with price " << price << " and quantity " << quantity << std::endl; }
};
{
public:
protected:
{
_market.AddSymbol(symbol);
_market.AddOrderBook(symbol);
return true;
}
{
return true;
}
{
return true;
}
{
return true;
}
{
return true;
}
{
return true;
}
{
return true;
}
{
return true;
}
private:
};
int main(int argc, char** argv)
{
MyMarketHandler market_handler;
MyITCHHandler itch_handler(market);
size_t size;
uint8_t buffer[8192];
CppCommon::StdInput input;
while ((size = input.Read(buffer, sizeof(buffer))) > 0)
{
itch_handler.Process(buffer, size);
}
return 0;
}
NASDAQ ITCH handler class.
NASDAQ ITCH handler definition.
Market manager definition.
ITCH protocol definitions.
Matching engine definitions.
Add Order with MPID Attribution Message.
uint64_t OrderReferenceNumber
uint64_t OrderReferenceNumber
uint64_t OrderReferenceNumber
uint64_t OrderReferenceNumber
uint64_t OrderReferenceNumber
Order Executed With Price Message.
uint64_t OrderReferenceNumber
uint64_t OriginalOrderReferenceNumber
uint64_t NewOrderReferenceNumber