/src/S2OPC/src/ClientServer/services/bgenc/browse_treatment.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Licensed to Systerel under one or more contributor license |
3 | | * agreements. See the NOTICE file distributed with this work |
4 | | * for additional information regarding copyright ownership. |
5 | | * Systerel licenses this file to you under the Apache |
6 | | * License, Version 2.0 (the "License"); you may not use this |
7 | | * file except in compliance with the License. You may obtain |
8 | | * a copy of the License at |
9 | | * |
10 | | * http://www.apache.org/licenses/LICENSE-2.0 |
11 | | * |
12 | | * Unless required by applicable law or agreed to in writing, |
13 | | * software distributed under the License is distributed on an |
14 | | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
15 | | * KIND, either express or implied. See the License for the |
16 | | * specific language governing permissions and limitations |
17 | | * under the License. |
18 | | */ |
19 | | |
20 | | /****************************************************************************** |
21 | | |
22 | | File Name : browse_treatment.c |
23 | | |
24 | | Date : 19/05/2024 23:40:51 |
25 | | |
26 | | C Translator Version : tradc Java V1.2 (06/02/2022) |
27 | | |
28 | | ******************************************************************************/ |
29 | | |
30 | | /*------------------------ |
31 | | Exported Declarations |
32 | | ------------------------*/ |
33 | | #include "browse_treatment.h" |
34 | | |
35 | | /*------------------------ |
36 | | INITIALISATION Clause |
37 | | ------------------------*/ |
38 | 0 | void browse_treatment__INITIALISATION(void) { |
39 | 0 | } |
40 | | |
41 | | /*-------------------- |
42 | | OPERATIONS Clause |
43 | | --------------------*/ |
44 | | void browse_treatment__min_nb_result_refs( |
45 | | const t_entier4 browse_treatment__p_maxTargetRef, |
46 | | const t_entier4 browse_treatment__p_nb_target, |
47 | 0 | t_entier4 * const browse_treatment__p_maxResultRefs) { |
48 | 0 | { |
49 | 0 | t_entier4 browse_treatment__l_maxTargetRef; |
50 | | |
51 | 0 | if ((0 == browse_treatment__p_maxTargetRef) || |
52 | 0 | (browse_treatment__p_maxTargetRef >= constants__k_n_BrowseTarget_max)) { |
53 | 0 | browse_treatment__l_maxTargetRef = constants__k_n_BrowseTarget_max; |
54 | 0 | } |
55 | 0 | else { |
56 | 0 | browse_treatment__l_maxTargetRef = browse_treatment__p_maxTargetRef; |
57 | 0 | } |
58 | 0 | if (browse_treatment__p_nb_target < browse_treatment__l_maxTargetRef) { |
59 | 0 | *browse_treatment__p_maxResultRefs = browse_treatment__p_nb_target; |
60 | 0 | } |
61 | 0 | else { |
62 | 0 | *browse_treatment__p_maxResultRefs = browse_treatment__l_maxTargetRef; |
63 | 0 | } |
64 | 0 | } |
65 | 0 | } |
66 | | |
67 | | void browse_treatment__local_is_valid_ReferenceTypeId( |
68 | | const t_bool browse_treatment__p_refType_defined, |
69 | | const constants__t_NodeId_i browse_treatment__p_referenceTypeId, |
70 | 0 | t_bool * const browse_treatment__bres) { |
71 | 0 | if (browse_treatment__p_refType_defined == true) { |
72 | 0 | address_space_itf__is_valid_ReferenceTypeId(browse_treatment__p_referenceTypeId, |
73 | 0 | browse_treatment__bres); |
74 | 0 | } |
75 | 0 | else { |
76 | 0 | *browse_treatment__bres = true; |
77 | 0 | } |
78 | 0 | } |
79 | | |
80 | | void browse_treatment__apply_result_mask_filter( |
81 | | const constants__t_BrowseResultMask_i browse_treatment__p_resultMask, |
82 | | const constants__t_NodeId_i browse_treatment__p_RefType, |
83 | | const t_bool browse_treatment__p_IsForward, |
84 | | const constants__t_QualifiedName_i browse_treatment__p_BrowseName, |
85 | | const constants__t_LocalizedText_i browse_treatment__p_DisplayName, |
86 | | const constants__t_NodeClass_i browse_treatment__p_NodeClass, |
87 | | const constants__t_ExpandedNodeId_i browse_treatment__p_TypeDefinition, |
88 | | constants__t_NodeId_i * const browse_treatment__out_RefType, |
89 | | t_bool * const browse_treatment__out_IsForward, |
90 | | constants__t_QualifiedName_i * const browse_treatment__out_BrowseName, |
91 | | constants__t_LocalizedText_i * const browse_treatment__out_DisplayName, |
92 | | constants__t_NodeClass_i * const browse_treatment__out_NodeClass, |
93 | 0 | constants__t_ExpandedNodeId_i * const browse_treatment__out_TypeDefinition) { |
94 | 0 | { |
95 | 0 | t_bool browse_treatment__is_in_mask; |
96 | | |
97 | 0 | browse_treatment_result_bs__is_BrowseName_in_mask(browse_treatment__p_resultMask, |
98 | 0 | &browse_treatment__is_in_mask); |
99 | 0 | if (browse_treatment__is_in_mask == true) { |
100 | 0 | *browse_treatment__out_BrowseName = browse_treatment__p_BrowseName; |
101 | 0 | } |
102 | 0 | else { |
103 | 0 | *browse_treatment__out_BrowseName = constants__c_QualifiedName_indet; |
104 | 0 | } |
105 | 0 | browse_treatment_result_bs__is_DisplayName_in_mask(browse_treatment__p_resultMask, |
106 | 0 | &browse_treatment__is_in_mask); |
107 | 0 | if (browse_treatment__is_in_mask == true) { |
108 | 0 | *browse_treatment__out_DisplayName = browse_treatment__p_DisplayName; |
109 | 0 | } |
110 | 0 | else { |
111 | 0 | *browse_treatment__out_DisplayName = constants__c_LocalizedText_indet; |
112 | 0 | } |
113 | 0 | browse_treatment_result_bs__is_NodeClass_in_mask(browse_treatment__p_resultMask, |
114 | 0 | &browse_treatment__is_in_mask); |
115 | 0 | if (browse_treatment__is_in_mask == true) { |
116 | 0 | *browse_treatment__out_NodeClass = browse_treatment__p_NodeClass; |
117 | 0 | } |
118 | 0 | else { |
119 | 0 | *browse_treatment__out_NodeClass = constants__c_NodeClass_indet; |
120 | 0 | } |
121 | 0 | browse_treatment_result_bs__is_TypeDefinition_in_mask(browse_treatment__p_resultMask, |
122 | 0 | &browse_treatment__is_in_mask); |
123 | 0 | if (browse_treatment__is_in_mask == true) { |
124 | 0 | *browse_treatment__out_TypeDefinition = browse_treatment__p_TypeDefinition; |
125 | 0 | } |
126 | 0 | else { |
127 | 0 | *browse_treatment__out_TypeDefinition = constants__c_ExpandedNodeId_indet; |
128 | 0 | } |
129 | 0 | browse_treatment_result_bs__is_ReferenceType_in_mask(browse_treatment__p_resultMask, |
130 | 0 | &browse_treatment__is_in_mask); |
131 | 0 | if (browse_treatment__is_in_mask == true) { |
132 | 0 | *browse_treatment__out_RefType = browse_treatment__p_RefType; |
133 | 0 | } |
134 | 0 | else { |
135 | 0 | *browse_treatment__out_RefType = constants__c_NodeId_indet; |
136 | 0 | } |
137 | 0 | browse_treatment_result_bs__is_IsForward_in_mask(browse_treatment__p_resultMask, |
138 | 0 | &browse_treatment__is_in_mask); |
139 | 0 | if (browse_treatment__is_in_mask == true) { |
140 | 0 | *browse_treatment__out_IsForward = browse_treatment__p_IsForward; |
141 | 0 | } |
142 | 0 | else { |
143 | 0 | *browse_treatment__out_IsForward = false; |
144 | 0 | } |
145 | 0 | } |
146 | 0 | } |
147 | | |
148 | | void browse_treatment__fill_browse_result_ref( |
149 | | const constants__t_Reference_i browse_treatment__p_ref, |
150 | | const constants__t_NodeId_i browse_treatment__p_browseView, |
151 | | const constants__t_BrowseDirection_i browse_treatment__p_browseDirection, |
152 | | const t_bool browse_treatment__p_refType_defined, |
153 | | const constants__t_NodeId_i browse_treatment__p_referenceType, |
154 | | const t_bool browse_treatment__p_includeSubtypes, |
155 | | const constants__t_BrowseResultMask_i browse_treatment__p_resultMask, |
156 | | t_bool * const browse_treatment__p_continue, |
157 | 0 | t_bool * const browse_treatment__p_alloc_failed) { |
158 | 0 | { |
159 | 0 | constants__t_NodeId_i browse_treatment__l_RefType; |
160 | 0 | constants__t_ExpandedNodeId_i browse_treatment__l_TargetNode; |
161 | 0 | t_bool browse_treatment__l_IsForward; |
162 | 0 | t_bool browse_treatment__l_res; |
163 | 0 | t_entier4 browse_treatment__l_bri; |
164 | 0 | constants__t_QualifiedName_i browse_treatment__l_BrowseName; |
165 | 0 | constants__t_LocalizedText_i browse_treatment__l_DisplayName; |
166 | 0 | constants__t_NodeClass_i browse_treatment__l_NodeClass; |
167 | 0 | constants__t_ExpandedNodeId_i browse_treatment__l_TypeDefinition; |
168 | 0 | t_bool browse_treatment__l_NodeClassInMask; |
169 | 0 | constants__t_NodeId_i browse_treatment__l_RefType2; |
170 | 0 | t_bool browse_treatment__l_IsForward2; |
171 | 0 | constants__t_QualifiedName_i browse_treatment__l_BrowseName2; |
172 | 0 | constants__t_LocalizedText_i browse_treatment__l_DisplayName2; |
173 | 0 | constants__t_NodeClass_i browse_treatment__l_NodeClass2; |
174 | 0 | constants__t_ExpandedNodeId_i browse_treatment__l_TypeDefinition2; |
175 | | |
176 | 0 | *browse_treatment__p_alloc_failed = false; |
177 | 0 | *browse_treatment__p_continue = true; |
178 | 0 | browse_treatment_result_bs__unused_browse_view(browse_treatment__p_browseView); |
179 | 0 | address_space_itf__get_Reference_ReferenceType(browse_treatment__p_ref, |
180 | 0 | &browse_treatment__l_RefType); |
181 | 0 | address_space_itf__get_Reference_TargetNode(browse_treatment__p_ref, |
182 | 0 | &browse_treatment__l_TargetNode); |
183 | 0 | address_space_itf__get_Reference_IsForward(browse_treatment__p_ref, |
184 | 0 | &browse_treatment__l_IsForward); |
185 | 0 | constants__get_Is_Dir_Forward_Compatible(browse_treatment__p_browseDirection, |
186 | 0 | browse_treatment__l_IsForward, |
187 | 0 | &browse_treatment__l_res); |
188 | 0 | if (browse_treatment__l_res == true) { |
189 | 0 | browse_treatment_1__Is_RefTypes_Compatible(browse_treatment__p_refType_defined, |
190 | 0 | browse_treatment__p_referenceType, |
191 | 0 | browse_treatment__p_includeSubtypes, |
192 | 0 | browse_treatment__l_RefType, |
193 | 0 | &browse_treatment__l_res); |
194 | 0 | if (browse_treatment__l_res == true) { |
195 | 0 | browse_treatment_1__get_optional_fields_ReferenceDescription(browse_treatment__l_TargetNode, |
196 | 0 | &browse_treatment__l_BrowseName, |
197 | 0 | &browse_treatment__l_DisplayName, |
198 | 0 | &browse_treatment__l_NodeClass, |
199 | 0 | &browse_treatment__l_TypeDefinition); |
200 | 0 | browse_treatment_context__is_NodeClass_in_NodeClassMask(browse_treatment__l_NodeClass, |
201 | 0 | &browse_treatment__l_NodeClassInMask); |
202 | 0 | if (browse_treatment__l_NodeClassInMask == true) { |
203 | 0 | browse_treatment_result_it__continue_iter_browseResult(browse_treatment__p_continue, |
204 | 0 | &browse_treatment__l_bri); |
205 | 0 | browse_treatment__apply_result_mask_filter(browse_treatment__p_resultMask, |
206 | 0 | browse_treatment__l_RefType, |
207 | 0 | browse_treatment__l_IsForward, |
208 | 0 | browse_treatment__l_BrowseName, |
209 | 0 | browse_treatment__l_DisplayName, |
210 | 0 | browse_treatment__l_NodeClass, |
211 | 0 | browse_treatment__l_TypeDefinition, |
212 | 0 | &browse_treatment__l_RefType2, |
213 | 0 | &browse_treatment__l_IsForward2, |
214 | 0 | &browse_treatment__l_BrowseName2, |
215 | 0 | &browse_treatment__l_DisplayName2, |
216 | 0 | &browse_treatment__l_NodeClass2, |
217 | 0 | &browse_treatment__l_TypeDefinition2); |
218 | 0 | browse_treatment_result_bs__setall_browse_result_reference_at(browse_treatment__l_bri, |
219 | 0 | browse_treatment__l_RefType2, |
220 | 0 | browse_treatment__l_IsForward2, |
221 | 0 | browse_treatment__l_TargetNode, |
222 | 0 | browse_treatment__l_BrowseName2, |
223 | 0 | browse_treatment__l_DisplayName2, |
224 | 0 | browse_treatment__l_NodeClass2, |
225 | 0 | browse_treatment__l_TypeDefinition2, |
226 | 0 | browse_treatment__p_alloc_failed); |
227 | 0 | } |
228 | 0 | } |
229 | 0 | } |
230 | 0 | if (*browse_treatment__p_alloc_failed == true) { |
231 | 0 | *browse_treatment__p_continue = false; |
232 | 0 | } |
233 | 0 | } |
234 | 0 | } |
235 | | |
236 | | void browse_treatment__fill_browse_result( |
237 | | const t_entier4 browse_treatment__p_startIndex, |
238 | | const t_entier4 browse_treatment__p_max_nb_results, |
239 | | const constants__t_NodeId_i browse_treatment__p_browseView, |
240 | | const constants__t_Node_i browse_treatment__p_src_node, |
241 | | const constants__t_BrowseDirection_i browse_treatment__p_browseDirection, |
242 | | const t_bool browse_treatment__p_refType_defined, |
243 | | const constants__t_NodeId_i browse_treatment__p_referenceType, |
244 | | const t_bool browse_treatment__p_includeSubtypes, |
245 | | const constants__t_BrowseResultMask_i browse_treatment__p_resultMask, |
246 | | constants_statuscodes_bs__t_StatusCode_i * const browse_treatment__p_serviceStatusCode, |
247 | | t_bool * const browse_treatment__p_toContinue, |
248 | 0 | t_entier4 * const browse_treatment__p_nextIndex) { |
249 | 0 | { |
250 | 0 | t_bool browse_treatment__l_continue_bri; |
251 | 0 | t_bool browse_treatment__l_continue_ref; |
252 | 0 | constants__t_Reference_i browse_treatment__l_ref; |
253 | 0 | t_bool browse_treatment__l_alloc_failed; |
254 | | |
255 | 0 | *browse_treatment__p_serviceStatusCode = constants_statuscodes_bs__e_sc_ok; |
256 | 0 | browse_treatment__l_ref = constants__c_Reference_indet; |
257 | 0 | browse_treatment__l_alloc_failed = false; |
258 | 0 | browse_treatment_result_it__init_iter_browseResult(browse_treatment__p_max_nb_results, |
259 | 0 | &browse_treatment__l_continue_bri); |
260 | 0 | browse_treatment_target_it__init_iter_reference(browse_treatment__p_src_node, |
261 | 0 | browse_treatment__p_startIndex, |
262 | 0 | &browse_treatment__l_continue_ref); |
263 | 0 | *browse_treatment__p_nextIndex = browse_treatment__p_startIndex; |
264 | 0 | while ((browse_treatment__l_continue_ref == true) && |
265 | 0 | (browse_treatment__l_continue_bri == true)) { |
266 | 0 | browse_treatment_target_it__continue_iter_reference(&browse_treatment__l_continue_ref, |
267 | 0 | &browse_treatment__l_ref, |
268 | 0 | browse_treatment__p_nextIndex); |
269 | 0 | browse_treatment__fill_browse_result_ref(browse_treatment__l_ref, |
270 | 0 | browse_treatment__p_browseView, |
271 | 0 | browse_treatment__p_browseDirection, |
272 | 0 | browse_treatment__p_refType_defined, |
273 | 0 | browse_treatment__p_referenceType, |
274 | 0 | browse_treatment__p_includeSubtypes, |
275 | 0 | browse_treatment__p_resultMask, |
276 | 0 | &browse_treatment__l_continue_bri, |
277 | 0 | &browse_treatment__l_alloc_failed); |
278 | 0 | } |
279 | 0 | *browse_treatment__p_toContinue = (((browse_treatment__l_continue_ref == true) && |
280 | 0 | (browse_treatment__l_continue_bri == false)) && |
281 | 0 | (browse_treatment__l_alloc_failed == false)); |
282 | 0 | if (browse_treatment__l_alloc_failed == true) { |
283 | 0 | *browse_treatment__p_serviceStatusCode = constants_statuscodes_bs__e_sc_bad_out_of_memory; |
284 | 0 | } |
285 | 0 | } |
286 | 0 | } |
287 | | |
288 | | void browse_treatment__set_browse_value_context( |
289 | | const constants__t_session_i browse_treatment__p_session, |
290 | | const t_entier4 browse_treatment__p_maxTargetRef, |
291 | | const constants__t_NodeId_i browse_treatment__p_browseView, |
292 | | const constants__t_NodeId_i browse_treatment__p_nodeId, |
293 | | const constants__t_BrowseDirection_i browse_treatment__p_browseDirection, |
294 | | const constants__t_NodeId_i browse_treatment__p_referenceType, |
295 | | const t_bool browse_treatment__p_includeSubtypes, |
296 | | const constants__t_BrowseNodeClassMask_i browse_treatment__p_nodeClassMask, |
297 | | const constants__t_BrowseResultMask_i browse_treatment__p_resultMask, |
298 | | const t_bool browse_treatment__p_autoReleaseCP, |
299 | 0 | constants_statuscodes_bs__t_StatusCode_i * const browse_treatment__p_service_StatusCode) { |
300 | 0 | browse_treatment_context__setall_browse_value_context(1, |
301 | 0 | browse_treatment__p_session, |
302 | 0 | browse_treatment__p_maxTargetRef, |
303 | 0 | browse_treatment__p_browseView, |
304 | 0 | browse_treatment__p_nodeId, |
305 | 0 | browse_treatment__p_browseDirection, |
306 | 0 | browse_treatment__p_referenceType, |
307 | 0 | browse_treatment__p_includeSubtypes, |
308 | 0 | browse_treatment__p_nodeClassMask, |
309 | 0 | browse_treatment__p_resultMask, |
310 | 0 | browse_treatment__p_autoReleaseCP, |
311 | 0 | browse_treatment__p_service_StatusCode); |
312 | 0 | } |
313 | | |
314 | | void browse_treatment__set_browse_value_context_from_continuation_point( |
315 | | const constants__t_session_i browse_treatment__p_session, |
316 | | const constants__t_ContinuationPointId_i browse_treatment__p_continuationPointId, |
317 | 0 | constants_statuscodes_bs__t_StatusCode_i * const browse_treatment__p_service_StatusCode) { |
318 | 0 | { |
319 | 0 | t_bool browse_treatment__l_res; |
320 | 0 | t_entier4 browse_treatment__l_nextIndex; |
321 | 0 | t_entier4 browse_treatment__l_maxTargetRef; |
322 | 0 | constants__t_NodeId_i browse_treatment__l_browseView; |
323 | 0 | constants__t_NodeId_i browse_treatment__l_nodeId; |
324 | 0 | constants__t_BrowseDirection_i browse_treatment__l_browseDirection; |
325 | 0 | constants__t_NodeId_i browse_treatment__l_referenceType; |
326 | 0 | t_bool browse_treatment__l_includeSubtypes; |
327 | 0 | constants__t_BrowseNodeClassMask_i browse_treatment__l_nodeClassMask; |
328 | 0 | constants__t_BrowseResultMask_i browse_treatment__l_resultMask; |
329 | 0 | t_bool browse_treatment__l_autoReleaseCP; |
330 | | |
331 | 0 | *browse_treatment__p_service_StatusCode = constants_statuscodes_bs__e_sc_bad_continuation_point_invalid; |
332 | 0 | browse_treatment__l_autoReleaseCP = false; |
333 | 0 | browse_treatment_continuation_points__getall_continuation_point(browse_treatment__p_session, |
334 | 0 | browse_treatment__p_continuationPointId, |
335 | 0 | &browse_treatment__l_res, |
336 | 0 | &browse_treatment__l_nextIndex, |
337 | 0 | &browse_treatment__l_maxTargetRef, |
338 | 0 | &browse_treatment__l_browseView, |
339 | 0 | &browse_treatment__l_nodeId, |
340 | 0 | &browse_treatment__l_browseDirection, |
341 | 0 | &browse_treatment__l_referenceType, |
342 | 0 | &browse_treatment__l_includeSubtypes, |
343 | 0 | &browse_treatment__l_nodeClassMask, |
344 | 0 | &browse_treatment__l_resultMask); |
345 | 0 | if (browse_treatment__l_res == true) { |
346 | 0 | browse_treatment_context__setall_browse_value_context(browse_treatment__l_nextIndex, |
347 | 0 | browse_treatment__p_session, |
348 | 0 | browse_treatment__l_maxTargetRef, |
349 | 0 | browse_treatment__l_browseView, |
350 | 0 | browse_treatment__l_nodeId, |
351 | 0 | browse_treatment__l_browseDirection, |
352 | 0 | browse_treatment__l_referenceType, |
353 | 0 | browse_treatment__l_includeSubtypes, |
354 | 0 | browse_treatment__l_nodeClassMask, |
355 | 0 | browse_treatment__l_resultMask, |
356 | 0 | browse_treatment__l_autoReleaseCP, |
357 | 0 | browse_treatment__p_service_StatusCode); |
358 | 0 | if (*browse_treatment__p_service_StatusCode == constants_statuscodes_bs__e_sc_ok) { |
359 | 0 | browse_treatment_continuation_points__release_continuation_point(browse_treatment__p_session, |
360 | 0 | browse_treatment__p_continuationPointId, |
361 | 0 | &browse_treatment__l_res); |
362 | 0 | } |
363 | 0 | } |
364 | 0 | } |
365 | 0 | } |
366 | | |
367 | | void browse_treatment__compute_browse_result( |
368 | | constants_statuscodes_bs__t_StatusCode_i * const browse_treatment__p_serviceStatusCode, |
369 | | constants__t_ContinuationPointId_i * const browse_treatment__p_continuationPointId, |
370 | 0 | t_entier4 * const browse_treatment__p_nbReferences) { |
371 | 0 | { |
372 | 0 | t_entier4 browse_treatment__l_startIndex; |
373 | 0 | constants__t_session_i browse_treatment__l_session; |
374 | 0 | t_entier4 browse_treatment__l_maxTargetRef; |
375 | 0 | constants__t_NodeId_i browse_treatment__l_browseView; |
376 | 0 | constants__t_NodeId_i browse_treatment__l_nodeId; |
377 | 0 | constants__t_BrowseDirection_i browse_treatment__l_browseDirection; |
378 | 0 | t_bool browse_treatment__l_refType_defined; |
379 | 0 | constants__t_NodeId_i browse_treatment__l_referenceType; |
380 | 0 | t_bool browse_treatment__l_includeSubtypes; |
381 | 0 | constants__t_BrowseNodeClassMask_i browse_treatment__l_nodeClassMask; |
382 | 0 | constants__t_BrowseResultMask_i browse_treatment__l_resultMask; |
383 | 0 | t_bool browse_treatment__l_autoReleaseCP; |
384 | 0 | t_bool browse_treatment__l_is_ref_type_id_valid; |
385 | 0 | t_bool browse_treatment__l_is_src_node_valid; |
386 | 0 | t_entier4 browse_treatment__l_nb_target; |
387 | 0 | constants__t_Node_i browse_treatment__l_src_node; |
388 | 0 | t_bool browse_treatment__l_alloc_bres; |
389 | 0 | t_entier4 browse_treatment__l_max_nb_results; |
390 | 0 | t_bool browse_treatment__l_toContinue; |
391 | 0 | t_entier4 browse_treatment__l_nextIndex; |
392 | 0 | t_bool browse_treatment__l_has_continuation_point; |
393 | 0 | constants__t_ContinuationPointId_i browse_treatment__l_prev_cp_id; |
394 | 0 | t_bool browse_treatment__l_cp_bres; |
395 | | |
396 | 0 | *browse_treatment__p_continuationPointId = constants__c_ContinuationPointId_indet; |
397 | 0 | *browse_treatment__p_nbReferences = 0; |
398 | 0 | browse_treatment_context__getall_browse_value_context(&browse_treatment__l_startIndex, |
399 | 0 | &browse_treatment__l_session, |
400 | 0 | &browse_treatment__l_maxTargetRef, |
401 | 0 | &browse_treatment__l_browseView, |
402 | 0 | &browse_treatment__l_nodeId, |
403 | 0 | &browse_treatment__l_browseDirection, |
404 | 0 | &browse_treatment__l_refType_defined, |
405 | 0 | &browse_treatment__l_referenceType, |
406 | 0 | &browse_treatment__l_includeSubtypes, |
407 | 0 | &browse_treatment__l_nodeClassMask, |
408 | 0 | &browse_treatment__l_resultMask, |
409 | 0 | &browse_treatment__l_autoReleaseCP); |
410 | 0 | browse_treatment__local_is_valid_ReferenceTypeId(browse_treatment__l_refType_defined, |
411 | 0 | browse_treatment__l_referenceType, |
412 | 0 | &browse_treatment__l_is_ref_type_id_valid); |
413 | 0 | browse_treatment_1__getall_SourceNode_NbRef(browse_treatment__l_nodeId, |
414 | 0 | &browse_treatment__l_is_src_node_valid, |
415 | 0 | &browse_treatment__l_nb_target, |
416 | 0 | &browse_treatment__l_src_node); |
417 | 0 | if ((browse_treatment__l_is_ref_type_id_valid == true) && |
418 | 0 | (browse_treatment__l_is_src_node_valid == true)) { |
419 | 0 | browse_treatment__min_nb_result_refs(browse_treatment__l_maxTargetRef, |
420 | 0 | browse_treatment__l_nb_target, |
421 | 0 | &browse_treatment__l_max_nb_results); |
422 | 0 | browse_treatment_result_bs__alloc_browse_result(browse_treatment__l_max_nb_results, |
423 | 0 | &browse_treatment__l_alloc_bres); |
424 | 0 | if (browse_treatment__l_alloc_bres == true) { |
425 | 0 | browse_treatment__fill_browse_result(browse_treatment__l_startIndex, |
426 | 0 | browse_treatment__l_max_nb_results, |
427 | 0 | browse_treatment__l_browseView, |
428 | 0 | browse_treatment__l_src_node, |
429 | 0 | browse_treatment__l_browseDirection, |
430 | 0 | browse_treatment__l_refType_defined, |
431 | 0 | browse_treatment__l_referenceType, |
432 | 0 | browse_treatment__l_includeSubtypes, |
433 | 0 | browse_treatment__l_resultMask, |
434 | 0 | browse_treatment__p_serviceStatusCode, |
435 | 0 | &browse_treatment__l_toContinue, |
436 | 0 | &browse_treatment__l_nextIndex); |
437 | 0 | if (*browse_treatment__p_serviceStatusCode == constants_statuscodes_bs__e_sc_ok) { |
438 | 0 | browse_treatment_result_bs__get_browse_result_nb_references(browse_treatment__p_nbReferences); |
439 | 0 | if (browse_treatment__l_toContinue == true) { |
440 | 0 | browse_treatment_continuation_points__has_continuation_point(browse_treatment__l_session, |
441 | 0 | &browse_treatment__l_has_continuation_point, |
442 | 0 | &browse_treatment__l_prev_cp_id); |
443 | 0 | if ((browse_treatment__l_autoReleaseCP == true) && |
444 | 0 | (browse_treatment__l_has_continuation_point == true)) { |
445 | 0 | browse_treatment_continuation_points__release_continuation_point(browse_treatment__l_session, |
446 | 0 | browse_treatment__l_prev_cp_id, |
447 | 0 | &browse_treatment__l_cp_bres); |
448 | 0 | } |
449 | 0 | browse_treatment_continuation_points__create_continuation_point(browse_treatment__l_session, |
450 | 0 | browse_treatment__l_nextIndex, |
451 | 0 | browse_treatment__l_maxTargetRef, |
452 | 0 | browse_treatment__l_browseView, |
453 | 0 | browse_treatment__l_nodeId, |
454 | 0 | browse_treatment__l_browseDirection, |
455 | 0 | browse_treatment__l_referenceType, |
456 | 0 | browse_treatment__l_includeSubtypes, |
457 | 0 | browse_treatment__l_nodeClassMask, |
458 | 0 | browse_treatment__l_resultMask, |
459 | 0 | &browse_treatment__l_cp_bres, |
460 | 0 | browse_treatment__p_continuationPointId); |
461 | 0 | if (browse_treatment__l_cp_bres == false) { |
462 | 0 | *browse_treatment__p_serviceStatusCode = constants_statuscodes_bs__e_sc_bad_no_continuation_points; |
463 | 0 | } |
464 | 0 | } |
465 | 0 | } |
466 | 0 | else { |
467 | 0 | browse_treatment_result_bs__clear_browse_result(); |
468 | 0 | } |
469 | 0 | } |
470 | 0 | else { |
471 | 0 | *browse_treatment__p_serviceStatusCode = constants_statuscodes_bs__e_sc_bad_out_of_memory; |
472 | 0 | } |
473 | 0 | } |
474 | 0 | else { |
475 | 0 | if (browse_treatment__l_is_ref_type_id_valid == false) { |
476 | 0 | *browse_treatment__p_serviceStatusCode = constants_statuscodes_bs__e_sc_bad_reference_type_id_invalid; |
477 | 0 | } |
478 | 0 | else { |
479 | 0 | *browse_treatment__p_serviceStatusCode = constants_statuscodes_bs__e_sc_bad_node_id_unknown; |
480 | 0 | } |
481 | 0 | } |
482 | 0 | } |
483 | 0 | } |
484 | | |