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