## MPC Definitions for the Stock Quoter Publisher/Subscriber Real-time CORBA Service

Note: For more information about how to write and use mpc files, please refer to here.

This MPC file (StockQuoter.mpc) contains all the projects used by the Stock Quoter Publisher/Subscriber Real-time CORBA Service.

- #### Defining the RTCORBA_Quoter_Common project

    project(RTCORBA_Quoter_Common): rt_server, taolib, valuetype {
      sharedname = RTCORBA_Quoter_Common
      idlflags += -Wb,stub_export_macro=RTCORBA_Quoter_Common_Export \
                  -Wb,stub_export_include=Common_Export.h \

      dynamicflags = RTCORBA_QUOTER_COMMON_BUILD_DLL

      IDL_Files {
        Distributor.idl
        Broker.idl
        Common.idl
      }

      Source_Files {
        DistributorC.cpp
        BrokerC.cpp
        CommonC.cpp
        Stock_PriorityMapping.cpp
      }

      Header_Files {
        DistributorC.h
        BrokerC.h
        CommonC.h
        CommonS.h
        Stock_PriorityMapping.h
      }
    }

This project is used as a Common project which contains all the idl stub definitions, the common skeleton definition, and the Stock_PriorityMapping definition.

- #### Defining the Admin project

    project(RTCORBA_Quoter_Admin): valuetype, rt_client, naming, stl {
      after = RTCORBA_Quoter_Common
      libs += RTCORBA_Quoter_Common

      Idl_Files {
      }

      Source_Files {
         Admin.cpp
      }

      Header_Files {
      }
    }

This project is used as a system administrator to start, stop the Stock Distributor server and change the notification rate of it.

- #### Defining the Distributor project

    project(RTCORBA_Quoter_Distributor): valuetype, rt_server, naming, utils, stl {
      libs +=  RTCORBA_Quoter_Common
      after += RTCORBA_Quoter_Common

      IDL_Files {
      }

      Source_Files {
          DistributorS.cpp
          Distributor.cpp
          Distributor_i.cpp
          Stock_Database.cpp
          CommonS.cpp
      }

      Header_Files {
          Distributor_i.h
          Stock_Database.h
          DistributorS.h
       }
    }

This project is used as a Stock Distributor server which monitors a real-time stock feed database and whenever the value of a stock changes, it publishes an event to interested Stock Broker clients. It can alse provide the detailed information about a stock required by a Stock Broker client.

- #### Defining the Broker project

    project(RTCORBA_Quoter_Broker): valuetype, rt_server, naming, utils, stl {
      libs +=  RTCORBA_Quoter_Common
      after += RTCORBA_Quoter_Common

      IDL_Files {
      }

      Source_Files {
          BrokerS.cpp
          StockNameConsumer_i.cpp
          Broker.cpp
          Broker_i.cpp
          CommonS.cpp
        }

      Header_Files {
          StockNameConsumer_i.h
          Broker_i.h
          Stock_Database.h
          BrokerS.h
      }
    }

This project is used as a Stock Broker client which subscribes with a Stock Distributor server to receive notification events whenever a stock value of interest to them changes. It can alse receive the detailed information about a stock by invoke a Stock Distributor server.

Email: shanshan.jiang@vanderbilt.edu