## Stock NameConsumer implementation for the Stock Quoter Publisher/Subscriber Real-time CORBA Service

### Implementation of StockNameConsumer interface

This interface is used as a callback interface used by the Stock Distributor server to notify Stock Broker clients of updates. This class is ALSO used as a signal handler to catch SIGINT and properly unsubscribe from the Stock Distributor server.

The Stock_StockNameConsumer_i class is generated automatically by the IDL compiler (using the -GI flag), which is a subclass of POA_Stock::StockNameConsumer class.

#### Implementing the Constructor

        Stock_StockNameConsumer_i::Stock_StockNameConsumer_i (Stock_StockBroker_i &context,
                                                              const char *stock_name)
          : context_ (context),
            stock_name_ (stock_name)

The "context_" and "stock_name_" are two private members of the Stock_StockNameConsumer_i class. They stand for the context of the StockNameConsumer object and the name of the stock to listen to respectively.

#### Implementing the push_StockName () member function

The main steps of this function are described as follows:

- Verify this is the correct stock: Check if the StockName parameter in this function is equal to the "stock_name_" private member. If this is not the stock that we are interested in then we need to stop and return.

- Get the quoter for the connection from the context_ private member.

        Stock::StockQuoter_var quoter = context_->get_connection_quoter_info ();

- Request more information from the quoter.

        Stock::StockInfo_var stock_info = quoter->get_stock_info (the_stockname->name());

#### Implementing the access operations of the cookie attribute.

- Get the cookie attribute:

        return this->cookie_.in ();

- Set the cookie attribute:

        this->cookie_ = cookie;
        cookie->_add_ref ();

Email: shanshan.jiang@vanderbilt.edu