afd0fac6f04b997e565548bd5d7423ff5e30b9d7
[ric-plt/resource-status-manager.git] / RSM / asn1codec / e2ap_engine / asn_ioc.h
1
2 /*
3  * Run-time support for Information Object Classes.
4  * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
5  * Redistribution and modifications are permitted subject to BSD license.
6  */
7 #ifndef ASN_IOC_H
8 #define ASN_IOC_H
9
10 #include <asn_system.h>         /* Platform-specific types */
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 struct asn_TYPE_descriptor_s;
17 struct asn_ioc_cell_s;
18
19 /*
20  * X.681, #13
21  */
22 typedef struct asn_ioc_set_s {
23     size_t rows_count;
24     size_t columns_count;
25     const struct asn_ioc_cell_s *rows;
26 } asn_ioc_set_t;
27
28
29 typedef struct asn_ioc_cell_s {
30     const char *field_name; /* Is equal to corresponding column_name */
31     enum {
32         aioc__undefined = 0,
33         aioc__value,
34         aioc__type,
35         aioc__open_type,
36     } cell_kind;
37     struct asn_TYPE_descriptor_s *type_descriptor;
38     const void *value_sptr;
39     struct {
40         size_t types_count;
41         struct {
42             unsigned choice_position;
43         } *types;
44     } open_type;
45 } asn_ioc_cell_t;
46
47
48 #ifdef __cplusplus
49 }
50 #endif
51
52 #endif  /* ASN_IOC_H */