// $Id$ // ============================================================================ // // = FILENAME // quoter.idl // // = DESCRIPTION // Quoter example that illustrate the use of the global POA and // the CosLifeCycle service. // // = AUTHOR // Darrell Brunsch (brunsch@cs.wustl.edu) // Michael Kircher (mk1@cs.wustl.edu) // // ============================================================================ #include "orbsvcs/CosLifeCycle.idl" module Stock { exception Invalid_Stock {}; exception Invalid_Quoter {}; interface Quoter : CosLifeCycle::LifeCycleObject { // = TITLE // Access Stock information. // Returns the current stock value or throws an exception. long get_quote (in string stock_name) raises (Invalid_Stock, Invalid_Quoter); // LifeCycleObject copy(in FactoryFinder there, // in Criteria the_criteria) // raises(NoFactory, NotCopyable, InvalidCriteria, CannotMeetCriteria); // copies this object to a location "there" using the "the_criteria" // void move(in FactoryFinder there, // in Criteria the_criteria) // raises(NoFactory, NotMovable, InvalidCriteria, CannotMeetCriteria); // moves this object to a location "there" using the "the_criteria" // void remove() // raises(NotRemovable); // removes/deletes this object }; interface Quoter_Factory { // = TITLE // Creation of Quoter objects Quoter create_quoter (in string name) raises (Invalid_Quoter); // Returns a new Quoter selected by name e.g., "Dow Jones," // "Reuters,", etc }; interface Quoter_Factory_Finder : CosLifeCycle::FactoryFinder { // = TITLE // Wrapper for the CosLifeCycle FactoryFinder // // inherits: // Factories find_factories(in Key factory_key) raises(NoFactory); }; interface Quoter_Generic_Factory : CosLifeCycle::GenericFactory { // = TITLE // Wrapper for the CosLifeCycle GenericFactory // // inherits: // boolean supports(in Key k); // Object create_object(in Key k, in Criteria the_criteria) // raises (NoFactory, InvalidCriteria, CannotMeetCriteria); }; interface Quoter_Life_Cycle_Service : CosLifeCycle::GenericFactory { // = TITLE // Wrapper for the CosLifeCycle GenericFactory // // inherits: // boolean supports(in Key k); // Object create_object(in Key k, in Criteria the_criteria) // raises (NoFactory, InvalidCriteria, CannotMeetCriteria); void register_factory (in string name, in string location, in string description, in Object _object); // provide an method for registering factories with their properties }; interface Criteria_Evaluator { // = TITLE // Criteria Evaluator // // = DESCRIPTION // Interface description for an evaluator of CosLifeCycle // Criterias. It is mainly a wrapper, which should make // access easier // typedef sequence SeqNamedValuePair; typedef CosLifeCycle::Criteria Criteria; exception NotAvailable { string reason; }; // raised if the questioned configuration is not available SeqNamedValuePair getInitialization (); // get the initialization string getFilter (); // get a filter string SeqNamedValuePair getLogicalLocation (); // get the logical location string getPreferences (); // get the preferences, not implemented void setCriteria (in Criteria criteria_); // set the Criteria which is searched for keywords }; };