class O2GGenericTableResponseReader

Brief

The class provides methods to read a stream of trading table rows coming from the trading server.

Details

The O2GGenericTableResponseReader is a generic class that provides methods to read responses to requests for initial trading tables information.
The O2GGenericTableResponseReader can be used to process the contents of the following response types: GetOffers, GetAccounts, GetTrades, GetClosedTrades, GetOrders, and GetMessages.

You can not create an instance of the class directly. You can only use the methods of the class on the following subclasses:
O2GOffersTableResponseReader
O2GAccountsTableResponseReader
O2GTradesTableResponseReader
O2GClosedTradesTableResponseReader
O2GOrdersTableResponseReader
O2GMessagesTableResponseReader
O2GTable.
Note: The O2GTable class is available only when your application uses the O2GTableManager. The usage of the O2GTable class is similar to the usage of the O2GGenericTableResponseReader class: it can not be instantiated directly and you can use its methods only on the following subclasses:
O2GOffersTable
O2GAccountsTable
O2GTradesTable
O2GClosedTradesTable
O2GOrdersTable
O2GMessagesTable
O2GSummaryTable

If initial trading table information is received as a response to the O2GLoginRules.getTableRefreshResponse request, you can process the response in the main thread of your program.
If initial trading table information is received as a response to the O2GRequestFactory.createRefreshTableRequest, you must process the response in your implementation of the IO2GResponseListener.onRequestCompleted method.

Get initial accounts and trades information [hide]

    // Get accounts information
    public static void getAccounts(O2GSession session, ResponseListener responseListener)
    {
        try
        {
            O2GLoginRules loginRules = session.getLoginRules();
            if (loginRules != null && loginRules.isTableLoadedByDefault(O2GTableType.Accounts))
            {
                O2GResponse accountsResponse = loginRules.getTableRefreshResponse(O2GTableType.Accounts);
                O2GResponseReaderFactory responseFactory = session.getResponseReaderFactory();
                O2GAccountsTableResponseReader accountsReader = responseFactory.createAccountsTableReader(accountsResponse);
                useGenericReader(accountsReader);
            }
            else
            {
                O2GRequestFactory requestFactory = session.getRequestFactory();
                if (requestFactory != null)
                {
                    O2GRequest request = requestFactory.createRefreshTableRequest(O2GTableType.Accounts);
                    responseListener.RequestID = request.RequestID;
                    session.sendRequest(request);
                    Thread.Sleep(1000);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception in getAccounts(). " + e.Message);
        }
    }
    // Get trades information
    public static void getTrades(O2GSession session, ResponseListener responseListener)
    {
        try
        {
            O2GLoginRules loginRules = session.getLoginRules();
            if (loginRules != null && loginRules.isTableLoadedByDefault(O2GTableType.Trades))
            {
                O2GResponse tradesResponse = loginRules.getTableRefreshResponse(O2GTableType.Trades);
                O2GResponseReaderFactory responseFactory = session.getResponseReaderFactory();
                O2GTradesTableResponseReader tradesReader = responseFactory.createTradesTableReader(tradesResponse);
                useGenericReader(tradesReader);
            }
            else
            {
                O2GRequestFactory requestFactory = session.getRequestFactory();
                if (requestFactory != null)
                {
                    O2GRequest request = requestFactory.createRefreshTableRequest(O2GTableType.Trades);
                    responseListener.RequestID = request.RequestID;
                    session.sendRequest(request);
                    Thread.Sleep(1000);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception in getTrades(). " + e.Message);
        }
    }
 
    // Use generic reader
    public static void useGenericReader(O2GGenericTableResponseReader genericReader)
    {
        int columnsCount = 0;
        Console.WriteLine("This is a response to your " + genericReader.Type + " table refresh request.");
        O2GTableColumnCollection columns = genericReader.Columns;
        columnsCount = columns.Count;
        for (int j = 0; j < columnsCount; j++)
        {
            O2GTableColumn column = columns[j];
            Console.WriteLine("" + column.ID + " " + column.ColumnType);
            for (int i = 0; i < genericReader.Count; i++)
            {
                Object value = genericReader.getCell(i, j);
                Console.WriteLine("Value: " + value);
            }
        }
    }
 
    // Implementation of IO2GResponseListener interface public method onRequestCompleted
    public void onRequestCompleted(String requestID, O2GResponse response)
    {
        int columnsCount = 0;
        O2GGenericTableResponseReader reader = null;
        if (requestID.Equals(mRequestID))
        {
            O2GResponseReaderFactory readerFactory = mSession.getResponseReaderFactory();
            if (readerFactory != null)
            {
                switch (response.Type)
                {
                    case O2GResponseType.GetAccounts:
                        reader = readerFactory.createAccountsTableReader(response);
                        break;
                    case O2GResponseType.GetTrades:
                        reader = readerFactory.createTradesTableReader(response);
                        break;
                }
                Console.WriteLine("This is a response to your " + reader.Type + " request.");
                O2GTableColumnCollection columns = reader.Columns;
                columnsCount = columns.Count;
                for (int j = 0; j < columnsCount; j++)
                {
                    O2GTableColumn column = columns[j];
                    Console.WriteLine("" + column.ID + " " + column.ColumnType);
                    for (int i = 0; i < reader.Count; i++)
                    {
                        Object value = reader.getCell(i, j);
                        Console.WriteLine("Value: " + value);
                    }
                }
            }
        }
    }

The type defined in the fxcore2.dll assembly. The namespace is fxcore2.

Public Properties

Columns

Gets an instance of the class that provides access to the list of table columns.

Count

Gets the number of rows in the reader.

Type

Gets the type of a trading table.

Public Methods

getCell

Gets the value of a cell.

getGenericRow

Gets a generic row by its index.

isCellValid

Checks whether the cell value can be used or not.

back