| 55 | } |
| 56 | |
| 57 | int send_trade_data(MultiTopicLib::DefaultMultiTopicType& model) |
| 58 | { |
| 59 | using OpenDDS::Model::MultiTopicLib::Elements; |
| 60 | DDS::DataWriter_var writer = model.writer(Elements::DataWriters::trade_writer); |
| 61 | // START OF EXISTING MESSENGER EXAMPLE CODE |
| 62 | |
| 63 | data1::TradeDataWriter_var trade_writer = |
| 64 | data1::TradeDataWriter::_narrow(writer.in()); |
| 65 | |
| 66 | if (CORBA::is_nil(trade_writer.in())) { |
| 67 | ACE_ERROR_RETURN((LM_ERROR, |
| 68 | ACE_TEXT("(%P|%t) ERROR: %N:%l: main() -") |
| 69 | ACE_TEXT(" _narrow failed!\n")), |
| 70 | -1); |
| 71 | } |
| 72 | |
| 73 | OpenDDS::Model::WriterSync ws(writer); |
| 74 | { |
| 75 | std::cout << "pub writing trades" << std::endl; |
| 76 | // Write samples |
| 77 | data1::Trade trade; |
| 78 | |
| 79 | trade.quantity = 200; |
| 80 | trade.seq = 0; |
| 81 | |
| 82 | for (int sym_index = 0; sym_index < sym_count; sym_index++) { |
| 83 | trade.symbol = CORBA::string_dup(symbols[sym_index]); |
| 84 | trade.last = prices[sym_index]; |
| 85 | for (int i = 0; i < 10; i++) { |
| 86 | DDS::ReturnCode_t error = trade_writer->write(trade, DDS::HANDLE_NIL); |
| 87 | ++trade.seq; |
| 88 | trade.last += 0.01; |
| 89 | |
| 90 | if (error != DDS::RETCODE_OK) { |
| 91 | ACE_ERROR((LM_ERROR, |
| 92 | ACE_TEXT("(%P|%t) ERROR: %N:%l: main() -") |
| 93 | ACE_TEXT(" write returned %d!\n"), error)); |
| 94 | } |
| 95 | } |
| 96 | } |
| 97 | } |
| 98 | return 0; |
| 99 | } |
| 100 | |
| 101 | int ACE_TMAIN(int argc, ACE_TCHAR** argv) |
| 102 | { |
no test coverage detected