1Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)}
2DEFINITIONS IMPLICIT TAGS ::=
3BEGIN
4
5-- exports everything
6
7IMPORTS OPERATION, ERROR
8FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
9
10
11ROS {InvokeId:InvokeIdSet,OPERATION:Invokable,OPERATION:Returnable} ::= CHOICE
12 {
13   invoke [1] Invoke {{InvokeIdSet}, {Invokable}},
14   returnResult [2] ReturnResult {{Returnable}},
15   returnError [3] ReturnError {{Errors{{Returnable}}}},
16   reject [4] Reject
17 }
18(CONSTRAINED BY {-- must conform to the above definition --}
19 ! RejectProblem : general-unrecognizedPDU)
20
21Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE
22{
23  invokeId InvokeId (InvokeIdSet)
24  (CONSTRAINED BY {-- must be unambiguous --}
25   ! RejectProblem : invoke-duplicateInvocation),
26  linkedId CHOICE {
27    present [0] IMPLICIT present < InvokeId,
28    absent [1] IMPLICIT NULL
29  }
30    (CONSTRAINED BY {-- must identify an outstanding operation --}
31    ! RejectProblem : invoke-unrecognizedLinkedId)
32    (CONSTRAINED BY {-- which has one or more linked operations--}
33    ! RejectProblem : invoke-linkedResponseUnexpected)
34    OPTIONAL,
35    opcode OPERATION.&operationCode
36    ({Operations}
37    ! RejectProblem : invoke-unrecognizedOperation),
38    argument OPERATION.&ArgumentType
39    ({Operations} {@opcode}
40    ! RejectProblem : invoke-mistypedArgument)
41    OPTIONAL
42    }
43(CONSTRAINED BY {-- must conform to the above definition --}
44 ! RejectProblem : general-mistypedPDU)
45(
46WITH COMPONENTS
47{...,
48    linkedId ABSENT
49    }
50| WITH COMPONENTS
51{...,
52    linkedId PRESENT,
53    opcode
54    (CONSTRAINED BY {-- must be in the &Linked field of the associated operation --
55	}
56    ! RejectProblem : invoke-unexpectedLinkedOperation)
57    }
58)
59
60ReturnResult {OPERATION:Operations}::= SEQUENCE
61{
62    invokeId InvokeId
63    (CONSTRAINED BY {-- must be that for an outstanding operation --}
64     ! RejectProblem:returnResult-unrecognizedInvocation)
65  (CONSTRAINED BY {-- which returns a result --}
66   ! RejectProblem:returnResult-resultResponseUnexpected),
67  result SEQUENCE
68   {
69     opcode OPERATION.&operationCode
70     ({Operations})(CONSTRAINED BY {-- identified by invokeId --}
71		    ! RejectProblem:returnResult-unrecognizedInvocation),
72     result OPERATION.&ResultType     ({Operations} {@.opcode}
73	! RejectProblem:returnResult-mistypedResult)
74	}
75    OPTIONAL
76    }
77(CONSTRAINED BY {-- must conform to the above definition --
78    }
79! RejectProblem:general-mistypedPDU)
80
81ReturnError {ERROR:Errors} ::= SEQUENCE
82{
83    invokeId InvokeId
84    (CONSTRAINED BY {-- must be that for an outstanding operation --
85	}
86    ! RejectProblem : returnError-unrecognizedInvocation)
87    (CONSTRAINED BY {-- which returns an error --
88	}
89    ! RejectProblem : returnError-errorResponseUnexpected),
90    errcode ERROR.&errorCode
91    ({Errors}
92    ! RejectProblem : returnError-unrecognizedError)
93    (CONSTRAINED BY {-- must be in the &Errors field of the associated operation --
94	}
95    ! RejectProblem : returnError-unexpectedError),
96    parameter ERROR.&ParameterType
97    ({Errors}{@errcode}
98    ! RejectProblem : returnError-mistypedParameter) OPTIONAL
99    }
100(CONSTRAINED BY {-- must conform to the above definition --
101    }
102! RejectProblem : general-mistypedPDU)
103
104Reject ::= SEQUENCE
105{
106    invokeId InvokeId,
107    problem CHOICE
108    {
109	general [0] GeneralProblem,
110	invoke [1] InvokeProblem,
111	returnResult [2] ReturnResultProblem,
112	returnError [3] ReturnErrorProblem
113	}
114    }
115(CONSTRAINED BY {-- must conform to the above definition --
116    }
117! RejectProblem : general-mistypedPDU)
118
119GeneralProblem ::= INTEGER
120{
121    unrecognizedPDU (0),
122    mistypedPDU (1),
123    badlyStructuredPDU (2)
124    }
125
126InvokeProblem ::= INTEGER
127{
128    duplicateInvocation (0),
129    unrecognizedOperation (1),
130    mistypedArgument (2),
131    resourceLimitation (3),
132    releaseInProgress (4),
133    unrecognizedLinkedId (5),
134    linkedResponseUnexpected (6),
135    unexpectedLinkedOperation (7)
136    }
137
138ReturnResultProblem ::= INTEGER
139{
140    unrecognizedInvocation (0),
141    resultResponseUnexpected (1),
142    mistypedResult (2)
143    }
144
145ReturnErrorProblem ::= INTEGER
146{
147    unrecognizedInvocation (0),
148    errorResponseUnexpected (1),
149    unrecognizedError (2),
150    unexpectedError (3),
151    mistypedParameter (4)
152    }
153
154RejectProblem ::= INTEGER
155{
156    general-unrecognizedPDU (0),
157    general-mistypedPDU (1),
158    general-badlyStructuredPDU (2),
159    invoke-duplicateInvocation (10),
160    invoke-unrecognizedOperation (11),
161    invoke-mistypedArgument (12),
162    invoke-resourceLimitation (13),
163    invoke-releaseInProgress (14),
164    invoke-unrecognizedLinkedId (15),
165    invoke-linkedResponseUnexpected (16),
166    invoke-unexpectedLinkedOperation (17),
167    returnResult-unrecognizedInvocation (20),
168    returnResult-resultResponseUnexpected (21),
169    returnResult-mistypedResult (22),
170    returnError-unrecognizedInvocation (30),
171    returnError-errorResponseUnexpected (31),
172    returnError-unrecognizedError (32),
173    returnError-unexpectedError (33),
174    returnError-mistypedParameter (34)
175    }
176
177InvokeId ::= CHOICE
178{
179    present INTEGER,
180    absent NULL
181    }
182
183noInvokeId InvokeId ::= absent:NULL
184
185NoInvokeId InvokeId ::= {noInvokeId}
186
187Errors {OPERATION:Operations} ERROR ::= {Operations.&Errors}
188
189Bind {OPERATION:operation} ::= CHOICE
190{
191    bind-invoke [16] OPERATION.&ArgumentType({operation}),
192    bind-result [17] OPERATION.&ResultType ({operation}),
193    bind-error [18] OPERATION.&Errors.&ParameterType ({operation})
194    }
195
196Unbind {OPERATION:operation} ::= CHOICE
197{
198    unbind-invoke [19] OPERATION.&ArgumentType({operation}),
199    unbind-result [20] OPERATION.&ResultType ({operation}),
200    unbind-error [21] OPERATION.&Errors.&ParameterType ({operation})
201    }
202
203END -- end of generic ROS PDU definitions
204