00001
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef _DISCOVERY_IDL_
00037 #define _DISCOVERY_IDL_
00038
00039 #pragma prefix "isr.lanl.gov"
00040 #include "sensix.idl"
00041
00042
00043 module sensix {
00044 module discovery {
00045 #define IDL
00046 #include "sensix.h"
00047 #include "discovery_service.h"
00048
00049 typedef sequence <octet> CapabilityList;
00050 typedef sequence <NodeId> NodeList;
00051
00052 exception DiscoveryException {
00053 DiscoveryError error;
00054 string description;
00055 };
00056
00057 typedef sequence <Request> RequestList;
00058
00059
00061
00062
00063 struct AnnounceHeader {
00064 octet magic;
00065 octet version;
00066 octet flags;
00067 octet announceType;
00068 unsigned long announceSize;
00069 };
00070
00071 struct Announce {
00072 NodeId nodeIdent;
00073 octet hLevel;
00074 };
00075
00076 struct Report {
00077 NodeId nodeIdent;
00078 octet hLevel;
00079 octet cType;
00080 };
00081
00082 struct Require {
00083 NodeId nodeIdent;
00084 octet hLevel;
00085 octet cType;
00086 NodeId targetIdent;
00087 };
00088
00089 struct Share {
00090 NodeId nodeIdent;
00091 octet hLevel;
00092 octet cType;
00093 string ior;
00094 };
00095
00096
00098
00099
00101 interface Family {
00102 const octet ID = INVALID;
00103 readonly attribute NodeList nodes;
00104
00106 boolean findNode(in NodeId id);
00107 };
00108
00109
00111 interface Ancestors: Family {
00112 const octet ID = ANCESTORS;
00113 };
00114
00115
00117 interface Peers: Family {
00118 const octet ID = INVALID;
00119 readonly attribute CapabilityList capabilities;
00120
00122 RequestList queryNetwork(in octet capability)
00123 raises (DiscoveryException);
00124
00126 Request queryNode(in NodeId id, in octet capability)
00127 raises (DiscoveryException);
00128 };
00129
00130
00132 interface Siblings: Peers {
00133 const octet ID = SIBLINGS;
00134 };
00135
00137 interface Descendants: Peers {
00138 const octet ID = DESCENDANTS;
00139 };
00140
00141
00143
00144
00146 interface Others {
00147 readonly attribute Ancestors ancestors;
00148 readonly attribute Siblings siblings;
00149 readonly attribute Descendants descendants;
00150
00152 boolean findNode(in NodeId id);
00153
00155 RequestList queryNetwork(in octet capability)
00156 raises (DiscoveryException);
00157
00159 Request queryNode(in NodeId id, in octet capability)
00160 raises (DiscoveryException);
00161 };
00162
00163
00165 interface Self {
00166 readonly attribute octet level;
00167 readonly attribute NodeId identifier;
00168 readonly attribute CapabilityList capabilities;
00169
00171 void registerObject(in octet capability, in Request obj)
00172 raises (DiscoveryException);
00173
00174 boolean findNodeInFamily(in NodeId id)
00175 raises (DiscoveryException);
00176 RequestList queryFamilyNetwork(in octet capability)
00177 raises (DiscoveryException);
00178 Request queryFamilyNode(in NodeId id, in octet capability)
00179 raises (DiscoveryException);
00180
00181 boolean findNodeInDescendants(in NodeId id)
00182 raises (DiscoveryException);
00183 RequestList queryDescendantNetwork(in octet capability)
00184 raises (DiscoveryException);
00185 Request queryDescendantNode(in NodeId id, in octet capability)
00186 raises (DiscoveryException);
00187 CapabilityList descendantCapabilities()
00188 raises (DiscoveryException);
00189 NodeList descendantNodes()
00190 raises (DiscoveryException);
00191
00192 boolean findNodeInSiblings(in NodeId id)
00193 raises (DiscoveryException);
00194 RequestList querySiblingNetwork(in octet capability)
00195 raises (DiscoveryException);
00196 Request querySiblingNode(in NodeId id, in octet capability)
00197 raises (DiscoveryException);
00198 CapabilityList siblingCapabilities()
00199 raises (DiscoveryException);
00200 NodeList siblingNodes()
00201 raises (DiscoveryException);
00202
00203 boolean findNodeInAncestors(in NodeId id)
00204 raises (DiscoveryException);
00205 NodeList ancestorNodes()
00206 raises (DiscoveryException);
00207 };
00208 };
00209 };
00210
00211
00212 #endif // _DISCOVERY_IDL_