1
ROSE DEFINITIONS IMPLICIT TAGS ::=
8
&ArgumentType OPTIONAL,
9
&argumentTypeOptional BOOLEAN OPTIONAL,
10
&returnResult BOOLEAN DEFAULT TRUE,
12
&resultTypeOptional BOOLEAN OPTIONAL,
13
&Errors ERROR OPTIONAL,
14
&Linked OPERATION OPTIONAL,
15
&synchronous BOOLEAN DEFAULT FALSE,
16
&idempotent BOOLEAN DEFAULT FALSE,
17
&alwaysReturns BOOLEAN DEFAULT TRUE,
18
&InvokePriority Priority OPTIONAL,
19
&ResultPriority Priority OPTIONAL,
20
&operationCode Code UNIQUE OPTIONAL
24
[ARGUMENT &ArgumentType [OPTIONAL &argumentTypeOptional]]
25
[RESULT &ResultType [OPTIONAL &resultTypeOptional]]
26
[RETURN RESULT &returnResult]
29
[SYNCHRONOUS &synchronous]
30
[IDEMPOTENT &idempotent]
31
[ALWAYS RESPONDS &alwaysReturns]
32
[INVOKE PRIORITY &InvokePriority]
33
[RESULT-PRIORITY &ResultPriority]
39
&ParameterType OPTIONAL,
40
¶meterTypeOptional BOOLEAN OPTIONAL,
41
&ErrorPriority Priority OPTIONAL,
42
&errorCode Code UNIQUE OPTIONAL
46
[PARAMETER &ParameterType [OPTIONAL ¶meterTypeOptional]]
47
[PRIORITY &ErrorPriority]
51
OPERATION-PACKAGE ::= CLASS
53
&Both OPERATION OPTIONAL,
54
&Consumer OPERATION OPTIONAL,
55
&Supplier OPERATION OPTIONAL,
56
&id OBJECT IDENTIFIER UNIQUE OPTIONAL
61
[CONSUMER INVOKES &Supplier]
62
[SUPPLIER INVOKES &Consumer]
66
CONNECTION-PACKAGE ::= CLASS
68
&bind OPERATION DEFAULT emptyBind,
69
&unbind OPERATION DEFAULT emptyUnbind,
70
&responderCanUnbind BOOLEAN DEFAULT FALSE,
71
&unbindCanFail BOOLEAN DEFAULT FALSE,
72
&id OBJECT IDENTIFIER UNIQUE OPTIONAL
78
[RESPONDER UNBIND &responderCanUnbind]
79
[FAILURE TO UNBIND &unbindCanFail]
85
&connection CONNECTION-PACKAGE OPTIONAL,
86
&OperationsOf OPERATION-PACKAGE OPTIONAL,
87
&InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL,
88
&InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL,
89
&id OBJECT IDENTIFIER UNIQUE OPTIONAL
93
[CONNECTION &connection]
94
[OPERATIONS OF &OperationsOf]
95
[INITIATOR CONSUMER OF &InitiatorConsumerOf]
96
[RESPONDER CONSUMER OF &InitiatorSupplierOf]
100
ROS-OBJECT-CLASS ::= CLASS
102
&Is ROS-OBJECT-CLASS OPTIONAL,
103
&Initiates CONTRACT OPTIONAL,
104
&Responds CONTRACT OPTIONAL,
105
&InitiatesAndResponds CONTRACT OPTIONAL,
106
&id OBJECT IDENTIFIER UNIQUE
111
[BOTH &InitiatesAndResponds]
112
[INITIATES &Initiates]
120
global OBJECT IDENTIFIER
123
Priority ::= INTEGER (0..MAX)
125
ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
127
invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
128
returnResult [2] ReturnResult {{Returnable}},
129
returnError [3] ReturnError {{Errors{{Returnable}}}},
132
(CONSTRAINED BY {-- must conform to the above definition --}
133
! RejectProblem : general-unrecognizedPDU)
135
Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
137
invokeId InvokeId (InvokeIdSet)
138
(CONSTRAINED BY {-- must be unambiguous --}
139
! RejectProblem : invoke-duplicateInvocation),
141
present [0] IMPLICIT present < InvokeId,
142
absent [1] IMPLICIT NULL
144
(CONSTRAINED BY {-- must identify an outstanding operation --}
145
! RejectProblem : invoke-unrecognizedLinkedId)
146
(CONSTRAINED BY {-- which has one or more linked operations--}
147
! RejectProblem : invoke-linkedResponseUnexpected)
149
opcode OPERATION.&operationCode
151
! RejectProblem : invoke-unrecognizedOperation),
152
argument OPERATION.&ArgumentType
153
({Operations} {@opcode}
154
! RejectProblem : invoke-mistypedArgument)
157
(CONSTRAINED BY {-- must conform to the above definition --}
158
! RejectProblem : general-mistypedPDU)
168
(CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
170
! RejectProblem : invoke-unexpectedLinkedOperation)
174
ReturnResult {OPERATION:Operations}::= SEQUENCE
177
(CONSTRAINED BY {-- must be that for an outstanding operation --}
178
! RejectProblem:returnResult-unrecognizedInvocation)
179
(CONSTRAINED BY {-- which returns a result --}
180
! RejectProblem:returnResult-resultResponseUnexpected),
183
opcode OPERATION.&operationCode
184
({Operations})(CONSTRAINED BY {-- identified by invokeId --}
185
! RejectProblem:returnResult-unrecognizedInvocation),
186
result OPERATION.&ResultType ({Operations} {@.opcode}
187
! RejectProblem:returnResult-mistypedResult)
191
(CONSTRAINED BY {-- must conform to the above definition --
193
! RejectProblem:general-mistypedPDU)
195
ReturnError {ERROR:Errors} ::= SEQUENCE
198
(CONSTRAINED BY {-- must be that for an outstanding operation --
200
! RejectProblem : returnError-unrecognizedInvocation)
201
(CONSTRAINED BY {-- which returns an error --
203
! RejectProblem : returnError-errorResponseUnexpected),
204
errcode ERROR.&errorCode
206
! RejectProblem : returnError-unrecognizedError)
207
(CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
209
! RejectProblem : returnError-unexpectedError),
210
parameter ERROR.&ParameterType
212
! RejectProblem : returnError-mistypedParameter) OPTIONAL
214
(CONSTRAINED BY {-- must conform to the above definition --
216
! RejectProblem : general-mistypedPDU)
223
general [0] GeneralProblem,
224
invoke [1] InvokeProblem,
225
returnResult [2] ReturnResultProblem,
226
returnError [3] ReturnErrorProblem
229
(CONSTRAINED BY {-- must conform to the above definition --
231
! RejectProblem : general-mistypedPDU)
233
GeneralProblem ::= INTEGER
237
badlyStructuredPDU (2)
240
InvokeProblem ::= INTEGER
242
duplicateInvocation (0),
243
unrecognizedOperation (1),
244
mistypedArgument (2),
245
resourceLimitation (3),
246
releaseInProgress (4),
247
unrecognizedLinkedId (5),
248
linkedResponseUnexpected (6),
249
unexpectedLinkedOperation (7)
252
ReturnResultProblem ::= INTEGER
254
unrecognizedInvocation (0),
255
resultResponseUnexpected (1),
259
ReturnErrorProblem ::= INTEGER
261
unrecognizedInvocation (0),
262
errorResponseUnexpected (1),
263
unrecognizedError (2),
265
mistypedParameter (4)
268
RejectProblem ::= INTEGER
270
general-unrecognizedPDU (0),
271
general-mistypedPDU (1),
272
general-badlyStructuredPDU (2),
273
invoke-duplicateInvocation (10),
274
invoke-unrecognizedOperation (11),
275
invoke-mistypedArgument (12),
276
invoke-resourceLimitation (13),
277
invoke-releaseInProgress (14),
278
invoke-unrecognizedLinkedId (15),
279
invoke-linkedResponseUnexpected (16),
280
invoke-unexpectedLinkedOperation (17),
281
returnResult-unrecognizedInvocation (20),
282
returnResult-resultResponseUnexpected (21),
283
returnResult-mistypedResult (22),
284
returnError-unrecognizedInvocation (30),
285
returnError-errorResponseUnexpected (31),
286
returnError-unrecognizedError (32),
287
returnError-unexpectedError (33),
288
returnError-mistypedParameter (34)
297
noInvokeId InvokeId ::= absent:NULL
299
NoInvokeId InvokeId ::= {noInvokeId}
301
Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
303
Bind {OPERATION:operation} ::= CHOICE
305
bind-invoke [16] OPERATION.&ArgumentType({operation}),
306
bind-result [17] OPERATION.&ResultType ({operation}),
307
bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
310
Unbind {OPERATION:operation} ::= CHOICE
312
unbind-invoke [19] OPERATION.&ArgumentType({operation}),
313
unbind-result [20] OPERATION.&ResultType ({operation}),
314
unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
317
emptyBind OPERATION ::= {ERRORS {refuse} SYNCHRONOUS TRUE}
319
emptyUnbind OPERATION ::= { SYNCHRONOUS TRUE }
321
refuse ERROR ::= {CODE local:-1}
326
ALWAYS RESPONDS FALSE
330
Forward {OPERATION:OperationSet} OPERATION ::=
333
OperationSet.&Linked.&Linked |
334
OperationSet.&Linked.&Linked.&Linked.&Linked
337
Reverse {OPERATION:OperationSet} OPERATION ::=
338
{Forward{{OperationSet.&Linked}}}
340
ConsumerPerforms {OPERATION-PACKAGE:package} OPERATION ::=
342
Forward{{package.&Consumer}} |
343
Forward{{package.&Both}} |
344
Reverse{{package.&Supplier}} |
345
Reverse{{package.&Both}}
348
SupplierPerforms {OPERATION-PACKAGE:package} OPERATION ::=
350
Forward{{package.&Supplier}} |
351
Forward{{package.&Both}} |
352
Reverse{{package.&Consumer}} |
353
Reverse{{package.&Both}}
356
AllOperations {OPERATION-PACKAGE:package} OPERATION ::=
358
ConsumerPerforms {package} |
359
SupplierPerforms {package}
362
recode {OPERATION:operation, Code:code} OPERATION ::=
364
ARGUMENT operation.&ArgumentType
365
OPTIONAL operation.&argumentTypeOptional
366
RESULT operation.&ResultType
367
OPTIONAL operation.&resultTypeOptional
368
RETURN RESULT operation.&returnResult
369
ERRORS {operation.&Errors}
370
LINKED {operation.&Linked}
371
SYNCHRONOUS operation.&synchronous
372
ALWAYS RESPONDS operation.&alwaysReturns
373
INVOKE PRIORITY {operation.&InvokePriority}
374
RESULT-PRIORITY {operation.&ResultPriority}
378
switch {OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::=
380
OPERATIONS {package.&Both}
381
CONSUMER INVOKES {package.&Consumer}
382
SUPPLIER INVOKES {package.&Supplier}
386
combine {OPERATION-PACKAGE:ConsumerConsumes,OPERATION-PACKAGE:ConsumerSupplies,
387
OPERATION-PACKAGE:base
388
} OPERATION-PACKAGE ::=
390
OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
391
CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
392
SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
396
ROS-SingleAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
397
{{InvokeIdSet}, {AllOperations{package}}, {AllOperations{package}}}
399
ROS-ConsumerAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
400
{{InvokeIdSet}, {ConsumerPerforms{package}}, {SupplierPerforms{package}}}
402
ROS-SupplierAS {InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= ROS
403
{{InvokeIdSet}, {SupplierPerforms{package}}, {ConsumerPerforms{package}}}
409
invokeId [0] InvokeId
411
RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
416
acknowledge OPERATION ::=
419
RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
424
ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
429
ERRORS {cancelFailed}
434
cancelFailed ERROR ::=
438
problem [0] CancelProblem,
439
operation [1] InvokeId
444
CancelProblem ::= ENUMERATED
445
{unknownOperation(0), tooLate(1), operationNotCancellable(2), ...}
447
cancelled ERROR ::= {CODE local:-3}
449
END -- end of useful definitions.