module Stock { exception Invalid_Stock {}; interface Quoter { long get_quote(in string stock_name) raises (Invalid_Stock); }; module Callback { struct Info { string stock_name; long value; }; // Distributed callback interface // (invoked by the Supplier) interface Handler { void push(in Info data); }; }; interface Notifying_Quoter { // Register a distributed callback handler void register(in string stock_name, in long threshold, in Callback::Handler handler) raises (Invalid_Stock); }; };