asn_ioc.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  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. #include <asn_system.h> /* Platform-specific types */
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. struct asn_TYPE_descriptor_s;
  13. struct asn_ioc_cell_s;
  14. /*
  15. * X.681, #13
  16. */
  17. typedef struct asn_ioc_set_s {
  18. size_t rows_count;
  19. size_t columns_count;
  20. const struct asn_ioc_cell_s *rows;
  21. } asn_ioc_set_t;
  22. typedef struct asn_ioc_cell_s {
  23. const char *field_name; /* Is equal to corresponding column_name */
  24. enum {
  25. aioc__value,
  26. aioc__type,
  27. aioc__open_type,
  28. } cell_kind;
  29. struct asn_TYPE_descriptor_s *type_descriptor;
  30. const void *value_sptr;
  31. struct {
  32. size_t types_count;
  33. struct {
  34. unsigned choice_position;
  35. } *types;
  36. } open_type;
  37. } asn_ioc_cell_t;
  38. #ifdef __cplusplus
  39. }
  40. #endif
  41. #endif /* ASN_IOC_H */