Previous Table of Contents Next


22.6.2 Polling Model Signatures


   When the polling model is used, the client is returned a queriable poller when making the asynchronous invocation. The interface’s operations and attributes are mapped to implied-IDL operations with names prefixed by sendp_. If this implied-IDL operation name conflicts with existing operations on the interface or any of the interface’s base interfaces, ami_ strings are inserted between sendp_ and the original operation name until the implied-IDL operation name is unique.

   22.6.2.1 Implied-IDL for Operations

   The signature of the implied-IDL for a given IDL operation is:

   • out arguments are ignored (i.e., are not part of the async signature).

   The implied-IDL operation signature has a context expression identical to the one from the original operation (if any is present).

   22.6.2.2 Implied-IDL for Attributes

   The signature of the implied-IDL for the polling model getter and setter operations corresponding to an interface’s attribute is as follows:

   22.6.2.3 Example

   The following implied-IDL is generated from the interface definitions used in the running example:

   // AMI implied-IDL including polling operations// for original example IDL defined in Section 22.5 exception InvalidStock { string sym; };

   valuetype AMI_StockManagerPoller;

   interface StockManager { // Original operation Declarations attribute string stock_exchange_name; boolean add_stock(in string symbol, in double quote); void edit_stock(in string symbol, in double new_quote)

   raises(InvalidStock); void remove_stock(in string symbol, out double quote)

   raises(InvalidStock); boolean find_closest_symbol(inout string symbol); double get_quote(in string symbol) raises(InvalidStock);

   // Async Polling operation Declarations 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_edit_stock( in string symbol, in double new_quote); AMI_StockManagerPoller sendp_remove_stock( in string symbol); AMI_StockManagerPoller sendp_find_closest_symbol( in string symbol); AMI_StockManagerPoller sendp_get_quote( in string symbol); };