//$Id: Broker.idl 66891 2005-07-08 22:49:01Z mxiong $

#include "../Stock_Base/Stock_Base.idl"

module Stock
{
  interface StockSubscriber {
    /// subscribe to an interested stock
    void stock_subscribe (in string stock_name)
          raises (Invalid_Stock);
    /// unsubscribe to an stock
    void stock_unsubscribe (in string stock_name)
          raises (Invalid_Stock);
  };

  /**
   * @class StockBroker
   *
   * @brief component
   */
  component StockBroker supports StockSubscriber
  {
    consumes StockName notify_in;
    uses StockQuoter read_quoter;
  };

  /**
   * @class StockBrokerHome
   *
   * @brief home for StockBroker component
   */
  home StockBrokerHome manages StockBroker
  {
  };
};
