// // Package : omniORB3 // Naming.idl // // // // Description: // IDL interfaces for COSS Extended Naming Service // #ifndef _COS_NAMING_IDL_ #define _COS_NAMING_IDL_ // omniORB specific pragmas to insert extra includes into the stub header. #pragma hh #include "COS_sysdep.h" #pragma prefix "omg.org" module CosNaming { typedef string Istring; struct NameComponent { Istring id; Istring kind; }; typedef sequence Name; enum BindingType {nobject, ncontext}; struct Binding { Name binding_name; BindingType binding_type; }; // Note: In struct Binding, binding_name is incorrectly defined // as a Name instead of a NameComponent. This definition is // unchanged for compatibility reasons. typedef sequence BindingList; interface BindingIterator; interface NamingContext { enum NotFoundReason {missing_node, not_context, not_object}; exception NotFound { NotFoundReason why; Name rest_of_name; }; exception CannotProceed { NamingContext cxt; Name rest_of_name; }; exception InvalidName {}; exception AlreadyBound {}; exception NotEmpty {}; void bind (in Name n, in Object obj) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); void rebind (in Name n, in Object obj) raises (NotFound, CannotProceed, InvalidName); void bind_context (in Name n, in NamingContext nc) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); void rebind_context (in Name n, in NamingContext nc) raises (NotFound, CannotProceed, InvalidName); Object resolve (in Name n) raises (NotFound, CannotProceed, InvalidName); void unbind (in Name n) raises (NotFound, CannotProceed, InvalidName); NamingContext new_context (); NamingContext bind_new_context (in Name n) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); void destroy () raises (NotEmpty); void list (in unsigned long how_many, out BindingList bl, out BindingIterator bi); }; interface BindingIterator { boolean next_one (out Binding b); boolean next_n (in unsigned long how_many, out BindingList bl); void destroy (); }; interface NamingContextExt : NamingContext { typedef string StringName; typedef string Address; typedef string URLString; StringName to_string(in Name n) raises(InvalidName); Name to_name(in StringName sn) raises(InvalidName); exception InvalidAddress {}; URLString to_url(in Address addr, in StringName sn) raises(InvalidAddress, InvalidName); Object resolve_str(in StringName n) raises(NotFound, CannotProceed, InvalidName, AlreadyBound); }; }; #endif /* ifndef _COS_NAMING_IDL_ */