public method IO2GTableListener.onChanged
Brief
Processes a notification about the row change in a table.
| Declaration | ||||
|
||||
| Parameters | |
rowID |
The identifier of the row. The parameter has the value of the row identifier for a specific trading table. For example, for the Accounts table, it has the value of the AccountID field. The complete list of the identifiers is shown below. |
rowData |
The object representing a row of a table. In order to process the parameter, you need to know what table it belongs to. It could be accomplished by calling the
|
Details
Table name |
|
Cast |
Casting syntax |
AccountID |
|
||
OfferID |
|
||
TradeID |
|
||
TradeID |
|
||
OrderID |
|
||
MsgID |
|
||
OfferID |
|
To get notifications about row changes in a specific table, an instance of the class implementing the
IO2GTableListener interface must be subscribed to the Update operation of this table.
It is accompished by calling the IO2GTable.subscribeUpdate
method with the O2GTableUpdateType.Update parameter.
For example, if you want to get notifications about the updates of the Trades table, write the following line:
tradesTable->subscribeUpdate(Update, tableListener);
For the implementation details, please see the example below:
Process a notification about updates of the Trades table [hide]
// Create session which uses table manager
mSession = CO2GTransport::createSession();
mSession->useTableManager(Yes, NULL);
//...
// After the login, get instances of the table manager and Trades table
IO2GTableManager *tableManager = mSession->getTableManager();
IO2GTradesTable *tradesTable = (IO2GTradesTable)tableManager->getTable(Trades);
// ...
// Subscribe listener, listen to inserts into the Trades table, unsubscribe listener
TableListener *tableListener = new TableListener();
tradesTable->subscribeUpdate(Update, tableListener);
uni::Sleep(1000);
offersTable->unsubscribeUpdate(Update, tableListener);
// Implementation of IO2GTableListener interface public method onChanged
void TableListener::onChanged(const char *rowID, IO2GRow *rowData)
~ {
IO2GTradeTableRow *trade = (IO2GTradeTableRow *)(rowData);
std::cout << "Trade information changed " << rowID << std::endl;
std::cout << "TradeID: " << trade.getTradeID() <<
" Close = " << trade.getClose() << std::endl;
}
Declared in IO2GTableListener