GOOSE Messages don't use the length field to perform the dissection.
[obnox/wireshark/wip.git] / idl / cosnaming.idl
1 //File: CosNaming.idl
2 //The only module of the Naming Service
3 //From http://industry.ebi.ac.uk/openBSA/idl/CosNaming.idl
4
5 #ifndef _COS_NAMING_IDL_
6 #define _COS_NAMING_IDL_
7 #pragma prefix "omg.org"
8
9 module CosNaming
10 {
11         typedef string Istring;
12         struct NameComponent {
13                 Istring id;
14                 Istring kind;
15         };
16
17         typedef sequence <NameComponent> Name;
18
19         enum BindingType {nobject, ncontext};
20
21         struct Binding {
22                 Name        binding_name;
23                 BindingType binding_type;                                  
24         };
25
26         typedef sequence <Binding> BindingList;                                         
27
28
29         interface BindingIterator;
30
31         interface NamingContext {
32
33                 enum NotFoundReason {   missing_node, 
34                                                                 not_context, 
35                                                                 not_object};
36         
37                 exception NotFound {    NotFoundReason why;
38                                                                 Name rest_of_name;};
39
40                 exception CannotProceed {   NamingContext cxt;
41                                                                         Name rest_of_name;};
42                                                                                                         
43                 exception InvalidName{};                                                                        
44                 exception AlreadyBound {};
45                 exception NotEmpty{};
46
47                 void bind(      in Name n, 
48                                         in Object obj)             
49                         raises( NotFound, 
50                                         CannotProceed, 
51                                         InvalidName, 
52                                         AlreadyBound);
53                 void rebind(in Name n, 
54                                         in Object obj)   
55                         raises( NotFound, 
56                                         CannotProceed, 
57                                         InvalidName);
58                 void bind_context(      in Name n, 
59                                                         in NamingContext nc)               
60                         raises( NotFound, 
61                                         CannotProceed, 
62                                         InvalidName, 
63                                         AlreadyBound);
64                 void rebind_context(in Name n, 
65                                                         in NamingContext nc)     
66                         raises( NotFound, 
67                                         CannotProceed, 
68                                         InvalidName);
69                 Object resolve (in Name n)
70                         raises( NotFound, 
71                                         CannotProceed, 
72                                         InvalidName);
73                 void unbind(in Name n)
74                         raises( NotFound, 
75                                         CannotProceed, 
76                                         InvalidName);
77                 NamingContext new_context();
78                 NamingContext bind_new_context(in Name n)
79                         raises( NotFound, 
80                                         AlreadyBound, 
81                                         CannotProceed, 
82                                         InvalidName);
83                 void destroy( )
84                         raises(NotEmpty);
85                 void list (     in unsigned long how_many, 
86                                         out BindingList bl, 
87                                         out BindingIterator bi);
88         };
89
90         interface BindingIterator {
91                 boolean next_one(out Binding b);
92                 boolean next_n( in unsigned long how_many, 
93                                                 out BindingList bl);
94                 void destroy();
95         };
96
97 };
98 #endif /* ifndef _COS_NAMING_IDL_ */