Coverage Report

Created: 2025-08-29 06:18

/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