2.1.4.3. Asynchronous Messaging Mapping Example

Interface. 

interface StockManager {
    attribute string stock_exchange_name;
    boolean add_stock (in string symbol, in double quote);
    void remove_stock (in string symbol, out double quote) raises (InvalidStock);
};

Callback Mapping. 

void sendc_get_stock_exchange_name (
    in AMI_StockManagerHandler ami_handler);
void sendc_set_stock_exchange_name (
    in AMI_StockManagerHandler ami_handler,
    in string attr_stock_exchange_name);

void sendc_add_stock (
    in AMI_StockManagerHandler ami_handler,
    in string symbol,
    in double quote);

void sendc_remove_stock (
    in AMI_StockManagerHandler ami_handler,
    in string symbol);


interface AMI_StockManagerHandler : Messaging::ReplyHandler {
    void get_stock_exchange_name (
        in string ami_return_val);
    void get_stock_exchange_name_excep (
        in Messaging::ExceptionHolder excep_holder);

    void set_stock_exchange_name ();
    void set_stock_exchange_name_excep (
        in Messaging::ExceptionHolder excep_holder);

    void add_stock (in boolean ami_return_val);
    void add_stock_excep (
        in Messaging::ExceptionHolder excep_holder);

    void remove_stock (in double quote);
    void remove_stock_excep (
        in Messaging::ExceptionHolder excep_holder);
};

Poller Mapping. 

AMI_StockManagerPoller sendp_get_stock_exchange_name ();
AMI_StockManagerPoller sendp_set_stock_exchange_name (
    in string attr_stock_exchange_name);

AMI_StockManagerPoller sendp_add_stock (
    in string symbol, in double quote);
AMI_StockManagerPoller sendp_remove_stock (
    in string symbol);


valuetype AMI_StockManagerPoller : Messaging::Poller {
    void get_stock_exchange_name (
        in unsigned long timeout,
        out string ami_return_val);
    void set_stock_exchange_name (
        in unsigned long timeout);

    void add_stock (
        in unsigned long timeout,
        out boolean ami_return_val);

    void remove_stock (
        in unsigned long timeout,
        out double quote) raises (InvalidStock);
};