ITK Function Reference

(V10000.1.0.60_20160308.00)
grm.h
Go to the documentation of this file.
1 /*==============================================================================
2  Copyright (c) 2003-2005 UGS Corporation
3  Unpublished - All Rights Reserved
4  ==============================================================================*/
5 
12 /* */
13 
14 #ifndef GRM_H
15 #define GRM_H
16 
17 #include <tccore/grm_errors.h>
18 #include <fclasses/tc_basic.h>
19 #include <stdarg.h>
20 #include <tccore/libtccore_exports.h>
21 
115 #define GRM_class_name_c "ImanRelation"
116 #define GRM_relationtype_name_size_c 32
117 
118 typedef struct GRM_relation_s
119 {
126 
131 {
137 
138 
139 #ifdef __cplusplus
140  extern "C"{
141 #endif
142 
155 extern TCCORE_API int GRM_create_relation(
156  tag_t primary_object,
158  tag_t secondary_object,
159  tag_t relation_type,
160  tag_t user_data,
161  tag_t* relation
162  );
163 
168 extern TCCORE_API int GRM_save_relation(
169  tag_t relation
170  );
171 
175 extern TCCORE_API int GRM_delete_relation(
176  tag_t relation
177  );
178 
186 extern TCCORE_API int GRM_find_relation(
187  tag_t primary_object,
189  tag_t secondary_object,
190  tag_t relation_type,
191  tag_t* relation
192  );
193 
200 extern TCCORE_API int GRM_list_relations(
201  tag_t primary_object,
202  tag_t secondary_object,
203  tag_t relation_type,
204  tag_t user_data,
205  int* count,
206  tag_t** relation_list
207  );
208 
212 extern TCCORE_API int GRM_list_secondary_objects(
213  tag_t primary_object,
214  tag_t relation_type,
215  int* count,
216  GRM_relation_t** secondary_list
219  );
220 
231 extern TCCORE_API int GRM_list_secondary_objects_in_bulk(
232  int input_count,
233  const GRM_list_relation_input_t* inputs,
234  int* count,
235  GRM_relation_t** secondary_list
237  );
238 
246 extern TCCORE_API int GRM_list_secondary_objects_only(
247  tag_t primary_object,
248  tag_t relation_type,
250  int* count,
251  tag_t** secondary_objects
252  );
253 
257 extern TCCORE_API int GRM_list_primary_objects(
258  tag_t secondary_object,
259  tag_t relation_type,
260  int* count,
261  GRM_relation_t** primary_list
264  );
265 
276 extern TCCORE_API int GRM_list_primary_objects_in_bulk(
277  int input_count,
278  const GRM_list_relation_input_t* inputs,
279  int* count,
280  GRM_relation_t** primary_list
282  );
283 
291 extern TCCORE_API int GRM_list_primary_objects_only(
292  tag_t secondary_object,
293  tag_t relation_type,
295  int* count,
296  tag_t** primary_objects
297  );
298 
311  tag_t secondary_object,
312  tag_t relation_type,
313  const char* primary_type_name,
314  int* count,
315  tag_t** primary_objects
316  );
317 
321 extern TCCORE_API int GRM_list_all_related_objects(
322  tag_t match_object,
323  int* count,
324  GRM_relation_t** related_object_list
327  );
328 
335 extern TCCORE_API int GRM_list_all_related_objects_only(
336  tag_t match_object,
337  int* count,
338  tag_t** related_objects
339  );
340 
344 extern TCCORE_API int GRM_ask_primary(
345  tag_t relation,
346  tag_t* primary_object
347  );
348 
352 extern TCCORE_API int GRM_ask_secondary(
353  tag_t relation,
354  tag_t* secondary_object
355  );
356 
360 extern TCCORE_API int GRM_ask_relation_type(
361  tag_t relation,
362  tag_t* relation_type
363  );
364 
368 extern TCCORE_API int GRM_ask_user_data(
369  tag_t relation,
370  tag_t* user_data
371  );
372 
385 extern TCCORE_API int GRM_set_user_data(
386  tag_t relation,
387  tag_t new_user_data
388  );
389 
393 extern TCCORE_API int GRM_list_relation_types(
394  int* count,
395  tag_t** relation_type_list
396  );
397 
401 extern TCCORE_API int GRM_find_relation_type(
402  const char* relation_type_name,
404  tag_t* relation_type
405  );
406 
410 extern TCCORE_API int GRM_create_relation_type(
411  const char* relation_type_name,
412  tag_t* relation_type
413  );
414 
418 extern TCCORE_API int GRM_delete_relation_type(
419  tag_t relation_type
420  );
421 
424 #ifdef __cplusplus
425 }
426 #endif
427 
428 #include <tccore/libtccore_undef.h>
429 
430 #endif