//File: CosLifeCycle.idl //Part of the LifeCycle Service // Note: if your IDL compiler does not yet support the // CORBA 2.3 Feature "Escaped Identifiers" (which provides // for the addition of new keywords to IDL, compile this // module with the preprocessor definition // "NO_ESCAPED_IDENTIFIERS". With many compilers this // would be done a qualifier on the command line, // something like -DNO_ESCAPED_IDENTIFIERS #ifndef _COS_LIFE_CYCLE_IDL_ #define _COS_LIFE_CYCLE_IDL_ #include #pragma prefix "omg.org" module CosLifeCycle{ typedef CosNaming::Name Key; typedef Object _Factory; typedef sequence <_Factory> Factories; typedef struct NVP { CosNaming::Istring name; any value; } NameValuePair; typedef sequence Criteria; exception NoFactory { Key search_key; }; exception NotCopyable { string reason; }; exception NotMovable { string reason; }; exception NotRemovable { string reason; }; exception InvalidCriteria{ Criteria invalid_criteria; }; exception CannotMeetCriteria { Criteria unmet_criteria; }; interface FactoryFinder { Factories find_factories(in Key factory_key) raises(NoFactory); }; interface LifeCycleObject { LifeCycleObject copy(in FactoryFinder there, in Criteria the_criteria) raises(NoFactory, NotCopyable, InvalidCriteria, CannotMeetCriteria); void move(in FactoryFinder there, in Criteria the_criteria) raises(NoFactory, NotMovable, InvalidCriteria, CannotMeetCriteria); void remove() raises(NotRemovable); }; interface GenericFactory { #ifdef NO_ESCAPED_IDENTIFIERS boolean supports(in Key k); #else boolean _supports(in Key k); #endif Object create_object( in Key k, in Criteria the_criteria) raises (NoFactory, InvalidCriteria, CannotMeetCriteria); }; }; #endif /* ifndef _COS_LIFE_CYCLE_IDL_ */