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 _SENSIX_IDL_
00037 #define _SENSIX_IDL_
00038
00039 #pragma prefix "isr.lanl.gov"
00040
00041
00042 module sensix {
00043 #define IDL
00044 #include "sensix.h"
00045
00046 union Data switch (char) {
00047 case 'd':
00048 case 'i':
00049 case 'u':
00050 case 'x':
00051 long long iresult;
00052 case 'f':
00053 case 'e':
00054 case 'g':
00055 case 'a':
00056 double fresult;
00057 };
00058
00059 typedef sequence <Data> Series;
00060
00061
00062 enum FunctorError {
00063 Refused, Incapable
00064 };
00065
00066 typedef sequence <FunctorError> ErrorList;
00067
00068
00069 interface Functor;
00070
00071 typedef sequence <Functor> FunctorList;
00072
00075 interface Functor {
00076 const octet ID = INVALID;
00077 readonly attribute octet identifier;
00078 readonly attribute unsigned long sequencer;
00079
00080 attribute octet priority;
00081 attribute FunctorList subfunctors;
00082
00083 attribute Series results;
00084 attribute ErrorList errors;
00085 string asString();
00086 };
00087
00088
00090
00091
00094 interface Capability {
00095 readonly attribute octet identifier;
00096
00099 void acquire(in Functor f);
00100 };
00101
00102
00105 interface Response {
00108 oneway void aggregate(in Functor f);
00109
00112 long devolve(in Functor f);
00113
00116 long detask(in Functor f);
00117 };
00118
00119
00122 interface Request {
00125 oneway void apply(in Functor f, in Response callback);
00126
00129 oneway void cancel(in Functor f);
00130
00133 void dataready(in Functor f);
00134
00137 void addCapability(in octet type, in Capability c);
00138 };
00139
00140
00142
00143
00144 typedef sequence <Request> ReqList;
00145
00148 interface Task {
00149 readonly attribute Functor f;
00150 readonly attribute Functor superf;
00151 readonly attribute Response callback;
00152 readonly attribute ReqList subtasks;
00153
00154 attribute long numPeers;
00155 attribute boolean cancelled;
00156
00157 void addSubtask(in Request r);
00158 };
00159 };
00160
00161
00162 #endif // _SENSIX_IDL_