Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82d3e59024 | ||
|
|
6fe59386df | ||
|
|
767cb36856 | ||
|
|
bbf961ed78 | ||
|
|
f3b8ce8088 | ||
|
|
026bda165e | ||
|
|
9727f17edf | ||
|
|
61b2913a31 |
No files matched your search
@@ -263,6 +263,7 @@ message CMEUserData{
|
||||
map<string, string> misc_tags = 60;
|
||||
string smp_instruction = 70;
|
||||
string max_order_rate_per_connection = 80;
|
||||
string location = 90;
|
||||
}
|
||||
|
||||
message CMEUserMarketDataEntitlementData{
|
||||
|
||||
@@ -71,8 +71,6 @@ message JetFIX {
|
||||
optional bool log_fix_stream = 260 [default=false];
|
||||
optional bool use_persisted_quote_ids = 270 [default=true];
|
||||
optional uint32 quote_id_reservation_size = 290 [default=100000];
|
||||
optional uint32 poll_period_ms = 300 [default=100];
|
||||
optional bool use_dedicated_core = 310 [default=false];
|
||||
optional uint32 cme_market_segment_id = 320 [default=0];
|
||||
|
||||
optional string trading_session_id = 330 [default=""];
|
||||
|
||||
@@ -1 +1 @@
|
||||
set(sources cmds/AutoCert.cpp;cmds/Benchmark.cpp;cmds/CmdRegistry.cpp;cmds/ConfigCheck.cpp;cmds/Help.cpp;cmds/Md.cpp;cmds/QuickTest.cpp;cmds/Run.cpp;cmds/RunSim.cpp;cmds/Span.cpp;cmds/Test.cpp;cmds/TestCeloxica.cpp;dspark/mirage.cpp;dspark/mirage/routing/Router.cpp;exchange_sim/ExchangeSim.cpp;exchange_sim/ExchangeSimApplication.cpp;exchange_sim/book/Book.cpp;exchange_sim/book/ExchangeSim.proto;exchange_sim/book/Order.cpp;exchange_sim/book/OrderMatcher.cpp;exchange_sim/book/book_transform.cpp;exchange_sim/tests/test_book_transform.cpp;http/ApiGateway.cpp;http/WebServer.cpp;jetfix/codec/FIXArray.cpp;jetfix/common/OutFIX.cpp;jetfix/connection/AsyncReader.cpp;jetfix/connection/IConnection.cpp;jetfix/connection/SocketConnection.cpp;jetfix/gateway/CoreGateway.cpp;jetfix/gateway/JetFIXGateway.cpp;jetfix/gateway/Session.cpp;jetfix/store/FIXFileStore.cpp;jetfix/store/session_name.cpp;jetfix/tests/async_reader_tests.cpp;jetfix/tests/decoding_tests.cpp;jetfix/tests/fix_encoding_stream_tests.cpp;jetfix/tests/fix_fragment_tests.cpp;jetfix/tests/jetfix_performance_tests.cpp;jetfix/tests/sample_fix.cpp;jetfix/tests/store_tests.cpp;main.cpp;md/platforms/celoxica/CXListener.cpp;md/platforms/celoxica/CXMain.cpp;md/platforms/celoxica/tests/cx_tests.cpp;md/platforms/mdp3_onixs/MDP3Listener.cpp;md/platforms/mdp3_onixs/MDP3Main.cpp;md/platforms/mdp3_onixs/MDP3Utils.cpp;md/platforms/mdp3_onixs/tests/mdp3_tests.cpp;md/run_md.cpp;mercury/actors/Actor.cpp;mercury/broker/AsyncEventBroker.cpp;mercury/broker/CoreEventBroker.cpp;mercury/broker/IEventBroker.cpp;mercury/events/TimerEvent.cpp;mercury/mercury_utils/Executor.cpp;mercury/mercury_utils/IPollableActor.cpp;mercury/mercury_utils/mercury_common.cpp;mercury/synopsis/SynopsisBuilder.cpp;mercury/topics/ITopic.cpp;orderman/actors/AsyncFactory.cpp;orderman/actors/ExecutionGateway.cpp;orderman/actors/FillStore.cpp;orderman/actors/OrderStore.cpp;orderman/actors/SecuritySrc.cpp;orderman/actors/ServiceBridge.cpp;orderman/actors/order_manager/OrderBuilder.cpp;orderman/actors/order_manager/OrderManager.cpp;orderman/actors/order_manager/OrderServicesData.cpp;orderman/events/CancelRejectEvent.cpp;orderman/events/NewExecutionReportEvent.cpp;orderman/limiter/LimitStore.cpp;orderman/limiter/Limiter.cpp;orderman/limiter/ProductLimitNode.cpp;orderman/limiter/ProductLimitTree.cpp;orderman/limiter/SecurityLimitNode.cpp;orderman/limiter/SecurityLimitTree.cpp;orderman/limiter/tests/limit_tests.cpp;orderman/order_factory/OrderFactory.cpp;orderman/order_router/OrderRouter.cpp;orderman/orderman_utils/fix_order_codec.cpp;orderman/orders/IcebergOrder.cpp;orderman/orders/NativeOrder.cpp;orderman/orders/Order.cpp;orderman/orders/TimeBoxOrder.cpp;orderman/orders/book_algos/BookAlgo.cpp;orderman/orders/book_algos/JoinOrder.cpp;orderman/orders/book_algos/LeanOrder.cpp;orderman/orders/book_algos/TickOrder.cpp;orderman/orders/book_algos/TopOrder.cpp;orderman/orders/spreader_orders/SpreaderOrder.cpp;orderman/orders/spreader_orders/spreader/LegPropertyData.cpp;orderman/orders/spreader_orders/spreader/QuoteLegPriceQuantityState.cpp;orderman/orders/spreader_orders/spreader/SingleFillHedger.cpp;orderman/orders/spreader_orders/spreader/SingleLegQuoter.cpp;orderman/orders/spreader_orders/spreader/SpreaderBookkeepingData.cpp;orderman/orders/spreader_orders/spreader/SpreaderChildOrderState.cpp;orderman/orders/spreader_orders/spreader/SpreaderLegData.cpp;orderman/orders/spreader_orders/spreader/SpreaderUtils.cpp;orderman/orders/spreader_orders/spreader/external_interfacing/SpreaderOrderBuilder.cpp;orderman/orders/spreader_orders/spreader/external_interfacing/SpreaderOrderServices.cpp;orderman/orders/spreader_orders/spreader/external_interfacing/SpreaderPreActivationOrderServices.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerEndStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerStartStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWaitingForCancelAckStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWaitingForFirstAckCancelledStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWaitingForFirstAckStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWorkingStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterEndStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterStartStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForCancelAckStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForFirstAckCancelledWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForFirstAckWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForSizeStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWorkingStateWorker.cpp;orderman/Line truncated
|
||||
set(sources cmds/AutoCert.cpp;cmds/Benchmark.cpp;cmds/CmdRegistry.cpp;cmds/ConfigCheck.cpp;cmds/Help.cpp;cmds/Md.cpp;cmds/QuickTest.cpp;cmds/Run.cpp;cmds/RunSim.cpp;cmds/Span.cpp;cmds/Test.cpp;cmds/TestCeloxica.cpp;dspark/mirage.cpp;dspark/mirage/routing/Router.cpp;exchange_sim/ExchangeSim.cpp;exchange_sim/ExchangeSimApplication.cpp;exchange_sim/book/Book.cpp;exchange_sim/book/ExchangeSim.proto;exchange_sim/book/Order.cpp;exchange_sim/book/OrderMatcher.cpp;exchange_sim/book/book_transform.cpp;exchange_sim/tests/test_book_transform.cpp;http/ApiGateway.cpp;http/WebServer.cpp;jetfix/codec/FIXArray.cpp;jetfix/common/OutFIX.cpp;jetfix/connection/AsyncReader.cpp;jetfix/connection/IConnection.cpp;jetfix/connection/SocketConnection.cpp;jetfix/gateway/CoreGateway.cpp;jetfix/gateway/JetFIXGateway.cpp;jetfix/gateway/Session.cpp;jetfix/store/FIXFileStore.cpp;jetfix/store/session_name.cpp;jetfix/tests/async_reader_tests.cpp;jetfix/tests/decoding_tests.cpp;jetfix/tests/fix_encoding_stream_tests.cpp;jetfix/tests/fix_fragment_tests.cpp;jetfix/tests/jetfix_performance_tests.cpp;jetfix/tests/sample_fix.cpp;jetfix/tests/store_tests.cpp;main.cpp;md/platforms/celoxica/CXListener.cpp;md/platforms/celoxica/CXMain.cpp;md/platforms/celoxica/tests/cx_tests.cpp;md/platforms/mdp3_onixs/MDP3Listener.cpp;md/platforms/mdp3_onixs/MDP3Main.cpp;md/platforms/mdp3_onixs/MDP3Utils.cpp;md/platforms/mdp3_onixs/tests/mdp3_tests.cpp;md/run_md.cpp;mercury/actors/Actor.cpp;mercury/broker/AsyncEventBroker.cpp;mercury/broker/CoreEventBroker.cpp;mercury/broker/IEventBroker.cpp;mercury/events/TimerEvent.cpp;mercury/mercury_utils/Executor.cpp;mercury/mercury_utils/IPollableActor.cpp;mercury/mercury_utils/mercury_common.cpp;mercury/synopsis/SynopsisBuilder.cpp;mercury/topics/ITopic.cpp;metrics/metrics.cpp;metrics/system_metrics.cpp;orderman/actors/AsyncFactory.cpp;orderman/actors/ExecutionGateway.cpp;orderman/actors/FillStore.cpp;orderman/actors/OrderStore.cpp;orderman/actors/SecuritySrc.cpp;orderman/actors/ServiceBridge.cpp;orderman/actors/order_manager/OrderBuilder.cpp;orderman/actors/order_manager/OrderManager.cpp;orderman/actors/order_manager/OrderServicesData.cpp;orderman/events/CancelRejectEvent.cpp;orderman/events/NewExecutionReportEvent.cpp;orderman/limiter/LimitStore.cpp;orderman/limiter/Limiter.cpp;orderman/limiter/ProductLimitNode.cpp;orderman/limiter/ProductLimitTree.cpp;orderman/limiter/SecurityLimitNode.cpp;orderman/limiter/SecurityLimitTree.cpp;orderman/limiter/tests/limit_tests.cpp;orderman/order_factory/OrderFactory.cpp;orderman/order_router/OrderRouter.cpp;orderman/orderman_utils/fix_order_codec.cpp;orderman/orders/IcebergOrder.cpp;orderman/orders/NativeOrder.cpp;orderman/orders/Order.cpp;orderman/orders/TimeBoxOrder.cpp;orderman/orders/book_algos/BookAlgo.cpp;orderman/orders/book_algos/JoinOrder.cpp;orderman/orders/book_algos/LeanOrder.cpp;orderman/orders/book_algos/TickOrder.cpp;orderman/orders/book_algos/TopOrder.cpp;orderman/orders/spreader_orders/SpreaderOrder.cpp;orderman/orders/spreader_orders/spreader/LegPropertyData.cpp;orderman/orders/spreader_orders/spreader/QuoteLegPriceQuantityState.cpp;orderman/orders/spreader_orders/spreader/SingleFillHedger.cpp;orderman/orders/spreader_orders/spreader/SingleLegQuoter.cpp;orderman/orders/spreader_orders/spreader/SpreaderBookkeepingData.cpp;orderman/orders/spreader_orders/spreader/SpreaderChildOrderState.cpp;orderman/orders/spreader_orders/spreader/SpreaderLegData.cpp;orderman/orders/spreader_orders/spreader/SpreaderUtils.cpp;orderman/orders/spreader_orders/spreader/external_interfacing/SpreaderOrderBuilder.cpp;orderman/orders/spreader_orders/spreader/external_interfacing/SpreaderOrderServices.cpp;orderman/orders/spreader_orders/spreader/external_interfacing/SpreaderPreActivationOrderServices.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerEndStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerStartStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWaitingForCancelAckStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWaitingForFirstAckCancelledStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWaitingForFirstAckStateWorker.cpp;orderman/orders/spreader_orders/spreader/hedger/hedger_states/HedgerWorkingStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterEndStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterStartStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForCancelAckStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForFirstAckCancelledWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForFirstAckWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoter_states/QuoterWaitingForSizeStateWorker.cpp;orderman/orders/spreader_orders/spreader/quoter/quoteLine truncated
|
||||
@@ -112,9 +112,9 @@ int SocketConnection::write (WriteVec const&vec,size_t vec_size,size_t cid)
|
||||
iv[i].iov_len = vec[i].second;
|
||||
}
|
||||
|
||||
tracepoint (bts_trace,trace_order,(char*) "SocketConnection.pre_write", 0,cid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "SocketConnection.pre_write", 0,cid,0);
|
||||
auto result = ::writev (_fd,iv,(int) vec_size);
|
||||
tracepoint (bts_trace,trace_order,(char*) "SocketConnection.post_write", 0,cid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "SocketConnection.post_write", 0,cid,0);
|
||||
if (_log && result >0) {
|
||||
for (size_t i = 0; i < vec_size;i++)
|
||||
_out_log.write (vec[i].first, vec[i].second);
|
||||
|
||||
@@ -139,7 +139,7 @@ CoreGateway::~CoreGateway() {
|
||||
}
|
||||
|
||||
void CoreGateway::send(orderman::TickToTradeCorID cid, OutFIXPtr const &fix) {
|
||||
tracepoint(bts_trace, trace_order, (char *)"CoreGateway.send", 0, cid);
|
||||
tracepoint(bts_trace, trace_order, (char *)"CoreGateway.send", 0, cid,0);
|
||||
me->event_queue.enqueue(EventData(&CoreGateway::sync_send, cid, fix));
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ void CoreGateway::sync_stop(EventData const &) {
|
||||
|
||||
void CoreGateway::sync_send(EventData const &ev) {
|
||||
tracepoint(bts_trace, trace_order, (char *)"CoreGateway.sync_send", 0,
|
||||
ev.cid);
|
||||
ev.cid,0);
|
||||
switch (me->state) {
|
||||
case State::OFF:
|
||||
bts_assert(false);
|
||||
|
||||
@@ -106,7 +106,7 @@ void Session::start() {
|
||||
}
|
||||
|
||||
void Session::send(orderman::TickToTradeCorID cid, OutFIXPtr const &msgs) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "Session.send", 0,cid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "Session.send", 0,cid,0);
|
||||
switch (me->state) {
|
||||
case State::READY:
|
||||
case State::CERT_MODE:
|
||||
@@ -563,12 +563,12 @@ void Session::internal_send(orderman::TickToTradeCorID cid,
|
||||
data_vec[i].first = s.data();
|
||||
data_vec[i].second = s.size();
|
||||
}
|
||||
tracepoint (bts_trace,trace_order,(char*) "Session.internal_send.pre_write", 0,cid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "Session.internal_send.pre_write", 0,cid,0);
|
||||
if (me->connection.write(data_vec, msgs->fix.size(), cid) < 0) {
|
||||
terminate_session(JetFIXError::CONNECTION_ERROR);
|
||||
return;
|
||||
}
|
||||
tracepoint (bts_trace,trace_order,(char*) "Session.internal_send.post_write", 0,cid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "Session.internal_send.post_write", 0,cid,0);
|
||||
me->last_sent_msg_timestamp = me->now();
|
||||
me->store.store(msgs);
|
||||
msgs->set_ts(OutFIX::POST_STORE, utils::TimeStamp::now());
|
||||
|
||||
@@ -106,19 +106,19 @@ MDP3Listener::~MDP3Listener() {
|
||||
//
|
||||
// Warnings/Errors
|
||||
void MDP3Listener::onError(onixs::Handler&, const onixs::ErrorArgs& error) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onError", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onError", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
LOG(md,Warn, "OnixS Error: {} - {}", error.description(), error.source());
|
||||
}
|
||||
void MDP3Listener::onWarning(onixs::Handler&, const onixs::WarningArgs& warning) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onWarning", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onWarning", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
LOG(md,Warn, "OnixS Warn: {} - {}", warning.description(), warning.source());
|
||||
}
|
||||
void MDP3Listener::onInstrumentRecovery(onixs::Handler& h) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onInstrumentRecovery", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onInstrumentRecovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
LOG(md,Info, "Beginning security definition recovery for channel {}", h.settings().channel());
|
||||
}
|
||||
void MDP3Listener::onEndOfInstrumentRecovery(onixs::Handler& h, const onixs::RecoveryCompletionArgs&) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfInstrumentRecovery", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfInstrumentRecovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
LOG(md,Info, "Finished Security definition recovery for channel {}", h.settings().channel());
|
||||
}
|
||||
// void MDP3Listener::onGap(onixs::Handler& h, const Security&, unsigned) {
|
||||
@@ -129,22 +129,22 @@ void MDP3Listener::onEndOfInstrumentRecovery(onixs::Handler& h, const onixs::Rec
|
||||
//
|
||||
// Gap Recovery
|
||||
void MDP3Listener::onMarketRecovery(onixs::Handler& h) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onMarketRecovery", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onMarketRecovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
update_all_status(COCONUTSECURITYSTATUS_PACKET_LOSS);
|
||||
LOG(md,Info, "Beginning market recovery for channel {}", h.settings().channel());
|
||||
}
|
||||
void MDP3Listener::onEndOfMarketRecovery(onixs::Handler& h, const onixs::RecoveryCompletionArgs&) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfMarketRecovery", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfMarketRecovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
update_all_status(COCONUTSECURITYSTATUS_OK);
|
||||
LOG(md,Info, "Finished market recovery for channel {}", h.settings().channel());
|
||||
}
|
||||
void MDP3Listener::onTcpRecovery(onixs::Handler& h) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTcpRecovery", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTcpRecovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
update_all_status(COCONUTSECURITYSTATUS_PACKET_LOSS);
|
||||
LOG(md,Info, "Beginning tcp recovery for channel {}", h.settings().channel());
|
||||
}
|
||||
void MDP3Listener::onEndOfTcpRecovery(onixs::Handler& h, const onixs::RecoveryCompletionArgs&) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfTcpRecovery", 0, _latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfTcpRecovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
update_all_status(COCONUTSECURITYSTATUS_OK);
|
||||
LOG(md,Info, "Finished tcp recovery for channel {}", h.settings().channel());
|
||||
}
|
||||
@@ -171,12 +171,12 @@ void MDP3Listener::onPacket(onixs::Handler&, const onixs::PacketArgs& args) {
|
||||
// was needed for clang compilation
|
||||
|
||||
tracepoint (bts_trace,trace_order,(char*) "onPacket",
|
||||
_packet_arrived.to_uint64() - (onixs_now-onixs_zero),_latest_sequence);
|
||||
_latest_sequence,(uint16_t) _latest_sequence, onixs_now-onixs_zero);
|
||||
}
|
||||
void MDP3Listener::onEndOfPacket(onixs::Handler&, const onixs::PacketArgs&) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfPacket.begin", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfPacket.begin", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
flush_books();
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfPacket.end", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onEndOfPacket.end", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -230,7 +230,7 @@ void set_security_common(const Definition& def, FixedSecurity& fsec) {
|
||||
}
|
||||
|
||||
void MDP3Listener::onDefinition(onixs::Handler&, const onixs::Security& osec, const onixs::InstrumentDefinitionFutureArgs& def) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onDefinition.future", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onDefinition.future", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
const auto& sec = def.message();
|
||||
auto exchange_id = sec.securityId();
|
||||
// LOG(Info, MarketData) << "onDefinition future " << exchange_id;
|
||||
@@ -255,7 +255,7 @@ void MDP3Listener::onDefinition(onixs::Handler&, const onixs::Security& osec, co
|
||||
add_security(fsec);
|
||||
}
|
||||
void MDP3Listener::onDefinition(onixs::Handler&, const onixs::Security&, const onixs::InstrumentDefinitionOptionArgs& def) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onDefinition.option", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onDefinition.option", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
const auto& sec = def.message();
|
||||
auto exchange_id = sec.securityId();
|
||||
// LOG(Info, MarketData) << "onDefinition option " << exchange_id;
|
||||
@@ -288,7 +288,7 @@ void MDP3Listener::onDefinition(onixs::Handler&, const onixs::Security&, const o
|
||||
}
|
||||
|
||||
void MDP3Listener::onDefinition(onixs::Handler&, const onixs::Security&, const onixs::InstrumentDefinitionSpreadArgs& spread_args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onDefinition.spread", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onDefinition.spread", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
const auto& sec = spread_args.message();
|
||||
auto exchange_id = sec.securityId();
|
||||
// LOG(Info, MarketData) << "onDefinition spread " << exchange_id;
|
||||
@@ -339,7 +339,7 @@ void MDP3Listener::onDefinition(onixs::Handler&, const onixs::Security&, const o
|
||||
//
|
||||
// Book
|
||||
void MDP3Listener::onBookUpdate(onixs::Handler&, const onixs::Security& sec, const onixs::ConsolidatedBook& book) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onBookUpdate", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onBookUpdate", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
|
||||
auto data = _index.get_security(sec.id());
|
||||
if (data == nullptr) return;
|
||||
@@ -389,7 +389,7 @@ void on_trade(SecurityData* data, const onixs::PRICE& price, int size, const oni
|
||||
}
|
||||
|
||||
void MDP3Listener::onTrade(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& arg) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTrade.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTrade.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != NULL) {
|
||||
int size = 0;
|
||||
@@ -400,7 +400,7 @@ void MDP3Listener::onTrade(onixs::Handler&, const onixs::Security& sec, const on
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onTrade(onixs::Handler&, const onixs::Security& sec, const onixs::TradeSummaryArgs& arg) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTrade.summary", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTrade.summary", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != NULL) {
|
||||
auto size = arg.entry().entrySize();
|
||||
@@ -409,7 +409,7 @@ void MDP3Listener::onTrade(onixs::Handler&, const onixs::Security& sec, const on
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onTrade(onixs::Handler&, const onixs::Security& sec, const onixs::TradeArgs& arg) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTrade.trade_args", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onTrade.trade_args", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
if (arg.entry().updateAction() == onixs::UpdateAction::New) {
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
@@ -423,7 +423,7 @@ void MDP3Listener::onTrade(onixs::Handler&, const onixs::Security& sec, const on
|
||||
//
|
||||
// RFQ
|
||||
void MDP3Listener::onQuoteRequest(onixs::Handler&, const onixs::Security& sec, const onixs::QuoteRequestRelatedSymArgs& arg) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onQuoteRequest", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onQuoteRequest", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto ts = utils::TimeStamp::now();
|
||||
@@ -472,7 +472,7 @@ void MDP3Listener::onQuoteRequest(onixs::Handler&, const onixs::Security& sec, c
|
||||
//
|
||||
// Volume
|
||||
void MDP3Listener::onElectronicVolume(onixs::Handler&, const onixs::Security& sec, const onixs::VolumeArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onElectronicVolume.volume", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onElectronicVolume.volume", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
bts_assert_d( args.entry().entryType().value() == 'e');
|
||||
@@ -482,7 +482,7 @@ void MDP3Listener::onElectronicVolume(onixs::Handler&, const onixs::Security& se
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onElectronicVolume(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onElectronicVolume.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onElectronicVolume.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data) {
|
||||
int32_t size;
|
||||
@@ -495,7 +495,7 @@ void MDP3Listener::onElectronicVolume(onixs::Handler&, const onixs::Security& se
|
||||
//
|
||||
// Misc
|
||||
void MDP3Listener::onSettlementPrice(onixs::Handler&, const onixs::Security& sec, const onixs::DailyStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onSettlementPrice.daily", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onSettlementPrice.daily", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
onixs::PRICE price;
|
||||
@@ -510,7 +510,7 @@ void MDP3Listener::onSettlementPrice(onixs::Handler&, const onixs::Security& sec
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onSettlementPrice(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onSettlementPrice.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onSettlementPrice.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
onixs::PRICE price;
|
||||
@@ -525,7 +525,7 @@ void MDP3Listener::onSettlementPrice(onixs::Handler&, const onixs::Security& sec
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onOpenInterest(onixs::Handler&, const onixs::Security& sec, const onixs::DailyStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpenInterest.daily", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpenInterest.daily", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
onixs::PRICE price;
|
||||
@@ -535,7 +535,7 @@ void MDP3Listener::onOpenInterest(onixs::Handler&, const onixs::Security& sec, c
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onOpenInterest(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpenInterest.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpenInterest.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
onixs::PRICE price;
|
||||
@@ -545,7 +545,7 @@ void MDP3Listener::onOpenInterest(onixs::Handler&, const onixs::Security& sec, c
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onOpeningPrice(onixs::Handler&, const onixs::Security& sec, const onixs::SessionStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpeningPrice.session", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpeningPrice.session", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
onixs::PRICE price = args.entry().entryPx();
|
||||
@@ -558,7 +558,7 @@ void MDP3Listener::onOpeningPrice(onixs::Handler&, const onixs::Security& sec, c
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onOpeningPrice(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpeningPrice.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onOpeningPrice.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
onixs::PRICE price;
|
||||
@@ -573,7 +573,7 @@ void MDP3Listener::onOpeningPrice(onixs::Handler&, const onixs::Security& sec, c
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onHighTradePrice(onixs::Handler&, const onixs::Security& sec, const onixs::SessionStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onHighTradePrice.session", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onHighTradePrice.session", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto display_factor = data->handle.security().display_factor;
|
||||
@@ -583,7 +583,7 @@ void MDP3Listener::onHighTradePrice(onixs::Handler&, const onixs::Security& sec,
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onHighTradePrice(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onHighTradePrice.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onHighTradePrice.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto display_factor = data->handle.security().display_factor;
|
||||
@@ -595,7 +595,7 @@ void MDP3Listener::onHighTradePrice(onixs::Handler&, const onixs::Security& sec,
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onLowTradePrice(onixs::Handler&, const onixs::Security& sec, const onixs::SessionStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onLowTradePrice.session", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onLowTradePrice.session", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto display_factor = data->handle.security().display_factor;
|
||||
@@ -605,7 +605,7 @@ void MDP3Listener::onLowTradePrice(onixs::Handler&, const onixs::Security& sec,
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onLowTradePrice(onixs::Handler&, const onixs::Security& sec, const onixs::RecoveryEntryArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onLowTradePrice.recovery", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onLowTradePrice.recovery", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto display_factor = data->handle.security().display_factor;
|
||||
@@ -617,7 +617,7 @@ void MDP3Listener::onLowTradePrice(onixs::Handler&, const onixs::Security& sec,
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onHighestBid(onixs::Handler&, const onixs::Security& sec, const onixs::SessionStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onHighestBid.session", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onHighestBid.session", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto display_factor = data->handle.security().display_factor;
|
||||
@@ -627,7 +627,7 @@ void MDP3Listener::onHighestBid(onixs::Handler&, const onixs::Security& sec, con
|
||||
}
|
||||
}
|
||||
void MDP3Listener::onLowestOffer(onixs::Handler&, const onixs::Security& sec, const onixs::SessionStatisticsArgs& args) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "onLowestOffer.session", 0,_latest_sequence);
|
||||
tracepoint (bts_trace,trace_order,(char*) "onLowestOffer.session", _latest_sequence, (uint16_t) _latest_sequence, 0);
|
||||
auto* data = _index.get_security(sec.id());
|
||||
if (data != nullptr) {
|
||||
auto display_factor = data->handle.security().display_factor;
|
||||
|
||||
@@ -24,6 +24,7 @@ struct Metric {
|
||||
Metric(const std::string&, const std::vector<Label>&);
|
||||
virtual void print(std::ostream&) const = 0;
|
||||
std::string str() const;
|
||||
virtual ~Metric() {}
|
||||
};
|
||||
|
||||
template <class T>
|
||||
@@ -144,4 +145,5 @@ class MetricsContainer {
|
||||
};
|
||||
|
||||
|
||||
}}//namespace
|
||||
}}//namespace
|
||||
|
||||
@@ -265,7 +265,7 @@ void ExecutionGateway::on_outgoing_fix(
|
||||
mercury::Update<OutFIXMsgEvent> const &msg) {
|
||||
if (msg.events)
|
||||
for (auto const &ev : *(msg.events)) {
|
||||
tracepoint (bts_trace,trace_order,(char*) "on_outgoing_fix", 0,ev.cid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "on_outgoing_fix", 0,ev.cid,0);
|
||||
me->gw.send(ev.cid, ev.msg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ class MDSource : public mercury::Actor, public mercury::IPollableActor {
|
||||
md::HandleReadResult::SUCCESS) {
|
||||
book._security_key = SecurityKey(handle->key());
|
||||
corid = handle->sequence();
|
||||
tracepoint (bts_trace,trace_order,(char*) "MDSource", 0, corid);
|
||||
tracepoint (bts_trace,trace_order,(char*) "MDSource", 0, corid,0);
|
||||
publish(_book_update, book, corid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,8 +64,9 @@ void OrderManager::on_securities(
|
||||
me->services_data.limiter.add_securities(secs);
|
||||
|
||||
if (me->state == State::WAIT_SEC) {
|
||||
LOG(OrderMan, Info, "Order manager received initial set of {} "
|
||||
"securities. Waiting for orders now",
|
||||
LOG(OrderMan, Info,
|
||||
"Order manager received initial set of {} "
|
||||
"securities. Waiting for orders now",
|
||||
update.events->size());
|
||||
// obtain recovered orders
|
||||
me->state = State::WAIT_ORDERS;
|
||||
@@ -342,8 +343,9 @@ void OrderManager::on_admin_data(const mercury::Update<NewAdminDataEvent> &m) {
|
||||
if (m.events) {
|
||||
|
||||
if (me->state == State::WAIT_ADMIN) {
|
||||
LOG(OrderMan, Info, "Order manager received admin data. Subscribing "
|
||||
"to security list now ");
|
||||
LOG(OrderMan, Info,
|
||||
"Order manager received admin data. Subscribing "
|
||||
"to security list now ");
|
||||
me->state = State::WAIT_SEC;
|
||||
subscribe<NewSecuritiesEvent>([this](auto const &sec_update) {
|
||||
this->on_securities(sec_update);
|
||||
@@ -356,5 +358,5 @@ void OrderManager::on_admin_data(const mercury::Update<NewAdminDataEvent> &m) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace orderman
|
||||
} // namespace bts
|
||||
@@ -268,7 +268,7 @@ NativeOrder::~NativeOrder() {}
|
||||
void NativeOrder::on_activate(Price p, Quantity q,
|
||||
bts::orderman::OrderServices &services,
|
||||
TickToTradeCorID cid) {
|
||||
tracepoint(bts_trace, trace_order, (char *)"on_activate", 0, cid);
|
||||
tracepoint(bts_trace, trace_order, (char *)"on_activate", 0, cid,0);
|
||||
bts_assert(!me->services);
|
||||
me->services = &services;
|
||||
|
||||
@@ -445,7 +445,7 @@ void NativeOrder::on_activate(Price p, Quantity q,
|
||||
}
|
||||
|
||||
void NativeOrder::on_update(Price p, Quantity q, TickToTradeCorID cid) {
|
||||
tracepoint(bts_trace, trace_order, (char *)"on_update", 0, cid);
|
||||
tracepoint(bts_trace, trace_order, (char *)"on_update", 0, cid,0);
|
||||
|
||||
switch (me->state.status()) {
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ void SpreaderOrder::_on_time(const bts::mercury::TimerEvent& t_event){
|
||||
}
|
||||
void SpreaderOrder::_on_book_update(const BookUpdateEvent& book_event){
|
||||
if (!_active) return;
|
||||
tracepoint (bts_trace,trace_order,(char*) "_on_book_update", 0,book_event.correlation_id);
|
||||
tracepoint (bts_trace,trace_order,(char*) "_on_book_update", 0,book_event.correlation_id,0);
|
||||
_state_worker->on_book (book_event.correlation_id, book_event.book);
|
||||
}
|
||||
void SpreaderOrder::_on_child_order_update(const OrderStateUpdateEvent& ord_ev){
|
||||
@@ -329,4 +329,4 @@ void SpreaderOrder::_send_check_termination(bool force){
|
||||
_state_worker->on_check_termination();
|
||||
}
|
||||
}
|
||||
}}
|
||||
}}
|
||||
@@ -4,12 +4,41 @@ sqlite3 trace_data/trace.sqlite <<EOF
|
||||
|
||||
.separator ","
|
||||
|
||||
create table raw_trace (seq integer, ts integer, hts text, msg text, cpu integer, tid integer,arg1 integer);
|
||||
.import trace_data/parsed_trace.txt raw_trace
|
||||
create table trace as
|
||||
create table trace (ts integer, hts text, msg text, cpu integer, tid integer,arg1 integer,arg2 interger, arg3 integer);
|
||||
.import trace_data/parsed_trace.txt trace
|
||||
create table shots as
|
||||
select hts, ts,arg1 seq, arg2 seq16,arg3 offset from trace where msg='SocketConnection.pre_write';
|
||||
create table packets as
|
||||
select hts, ts,arg1 seq, arg2 seq16,arg3 offset from trace where msg='onPacket';
|
||||
create table paired_all as
|
||||
select
|
||||
shots.ts shot_ts,
|
||||
shots.hts shot_hts,
|
||||
packets.ts packet_ts,
|
||||
packets.hts packet_hts,
|
||||
shots.seq16 seq16,
|
||||
packets.seq seq,
|
||||
packets.offset offset
|
||||
from
|
||||
shots, packets
|
||||
where
|
||||
shots.seq16 = packets.seq16 and shots.ts > packets.ts ;
|
||||
create table shot_packet as
|
||||
select
|
||||
(seq % 65535) seq16, seq, ts, hts, msg, cpu, tid, arg1
|
||||
from
|
||||
raw_trace;
|
||||
create index trace_seq_idx on trace(seq16);
|
||||
(shot_ts - max(packet_ts)) / 1000 t,
|
||||
shot_ts,
|
||||
max(packet_ts) packet_ts,
|
||||
max(seq) seq
|
||||
from
|
||||
paired_all
|
||||
group by
|
||||
shot_ts;
|
||||
create table tick_to_trade as
|
||||
select
|
||||
shot_packet.*,
|
||||
(shot_packet.t + packets.offset/1000) total_t,
|
||||
packets.offset,
|
||||
packets.seq16
|
||||
from
|
||||
shot_packet, packets where shot_packet.packet_ts = packets.ts;
|
||||
EOF
|
||||
@@ -4,7 +4,7 @@ import re
|
||||
import fileinput
|
||||
import sys
|
||||
|
||||
sample = "[11:13:02.685629121] (+0.000001447) pp-12 bts_trace:quoter: { cpu_id = 2 }, { pthread_id = 140322906629888 }, { msg = \"handle_updated\", arg1 = 3893975869889250, arg2 = 0 }"
|
||||
sample = "[11:13:02.685629121] (+0.000001447) pp-12 bts_trace:quoter: { cpu_id = 2 }, { pthread_id = 140322906629888 }, { msg = \"handle_updated\", arg1 = 3893975869889250, arg2 = 0 , arg3 = 0 }"
|
||||
|
||||
rx = '\\[(?P<ts_hour>\\d\\d)\\:(?P<ts_min>\\d\\d)\\:(?P<ts_sec>\\d\\d)\\.(?P<ts_ns>\\d*).*?\\{ (?P<ctx1>.*?)\\ }, ' '\\{ (?P<ctx2>.*?) \\}, ' '\\{ (?P<udata>.*?) \\}'
|
||||
rcx = re.compile(rx)
|
||||
@@ -29,9 +29,9 @@ for line in sys.stdin:
|
||||
parse_group(g.group('ctx1'),row)
|
||||
parse_group(g.group('ctx2'),row)
|
||||
parse_group(g.group('udata'),row)
|
||||
# seq, ts, hts,msg,cpu,tid,arg1
|
||||
#ts, hts,msg,cpu,tid,arg1,arg2, arg3
|
||||
#print row
|
||||
print ("%s,%s,%s,%s,%s,%s,%s" % (row['arg2'],row['t'],row['ts'],row['msg'],row['cpu_id'],row['pthread_id'],row['arg1']))
|
||||
print ("%s,%s,%s,%s,%s,%s,%s,%s" % (row['t'],row['ts'],row['msg'],row['cpu_id'],row['pthread_id'],row['arg1'],row['arg2'],row['arg3']))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
|
||||
|
||||
TRACEPOINT_EVENT(bts_trace, trace_order,
|
||||
TP_ARGS(char *, text, long long, argument1, long long, argument2),
|
||||
TP_ARGS(char *, text, long long, argument1, long long, argument2, long long, argument3),
|
||||
TP_FIELDS(
|
||||
ctf_string(msg, text)
|
||||
ctf_integer(long long, arg1,argument1)
|
||||
ctf_integer(long long, arg2,argument2)
|
||||
ctf_integer(long long, arg3,argument3)
|
||||
))
|
||||
|
||||
#endif /* _BTS_TP_H */
|
||||
|
||||
@@ -55,6 +55,7 @@ let defaultScratchUser = {
|
||||
miscTags = JSMap.empty<string>
|
||||
smpInstruction = ""
|
||||
maxOrderRatePerConnection = ""
|
||||
location = ""
|
||||
}
|
||||
iceData = {
|
||||
authorizedTrader = ""
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
#!/bin/bash
|
||||
cid=`docker ps | grep bluetradingsystems/linux_docker | awk '{print $1}'`
|
||||
docker exec $cid /bin/bash -c "cd build/clang_debug/ && ninja"
|
||||
if [ -f /.dockerenv ]; then
|
||||
ninja
|
||||
else
|
||||
cid=`docker ps | grep bluetradingsystems/linux_docker | awk '{print $1}'`
|
||||
docker exec $cid /bin/bash -c "cd build/clang_debug/ && ninja"
|
||||
fi
|
||||
@@ -6,7 +6,7 @@ cd $DIR/../build/
|
||||
rm -rf clang_debug
|
||||
mkdir clang_debug
|
||||
cd clang_debug
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=`realpath ../../tools/linux_control/rtags.sh` ../..
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_CXX_COMPILER=`realpath ../../tools/linux_control/rtags.sh` ../..
|
||||
cd ..
|
||||
|
||||
rm -rf ninja_debug
|
||||
@@ -18,7 +18,7 @@ cd ..
|
||||
rm -rf ninja_release
|
||||
mkdir ninja_release
|
||||
cd ninja_release
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_CXX_COMPILER=g++ ../..
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ ../..
|
||||
cd ..
|
||||
|
||||
|
||||
Reference in new issue
Block a user