blob: 35b951105af17b77911de99e1b78558982944e96 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001/*-
2 * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
3 * Redistribution and modifications are permitted subject to BSD license.
4 */
5#ifndef _CONSTR_CHOICE_H_
6#define _CONSTR_CHOICE_H_
7
8#include <constr_TYPE.h>
9
Lev Walkinf15320b2004-06-03 03:38:44 +000010typedef struct asn1_CHOICE_specifics_s {
11 /*
12 * Target structure description.
13 */
14 int struct_size; /* Size of the target structure. */
15 int ctx_offset; /* Offset of the ber_dec_ctx_t member */
16 int pres_offset; /* Identifier of the present member */
17 int pres_size; /* Size of the identifier (enum) */
18
19 /*
Lev Walkinf15320b2004-06-03 03:38:44 +000020 * Tags to members mapping table.
21 */
Lev Walkin4c36e302004-06-06 07:20:02 +000022 asn1_TYPE_tag2member_t *tag2el;
Lev Walkinf15320b2004-06-03 03:38:44 +000023 int tag2el_count;
24
25 /*
26 * Extensions-related stuff.
27 */
28 int extensible; /* Whether CHOICE is extensible */
29} asn1_CHOICE_specifics_t;
30
31/*
32 * A set specialized functions dealing with the CHOICE type.
33 */
Lev Walkina9cc46e2004-09-22 16:06:28 +000034asn_struct_free_f CHOICE_free;
35asn_struct_print_f CHOICE_print;
Lev Walkinf15320b2004-06-03 03:38:44 +000036asn_constr_check_f CHOICE_constraint;
37ber_type_decoder_f CHOICE_decode_ber;
38der_type_encoder_f CHOICE_encode_der;
Lev Walkina9cc46e2004-09-22 16:06:28 +000039xer_type_encoder_f CHOICE_encode_xer;
Lev Walkinf15320b2004-06-03 03:38:44 +000040asn_outmost_tag_f CHOICE_outmost_tag;
Lev Walkinf15320b2004-06-03 03:38:44 +000041
42#endif /* _CONSTR_CHOICE_H_ */