/*-
 * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
 * Redistribution and modifications are permitted subject to BSD license.
 */
#ifndef	_CONSTR_SEQUENCE_H_
#define	_CONSTR_SEQUENCE_H_

#include <constr_TYPE.h>

typedef struct asn1_SEQUENCE_specifics_s {
	/*
	 * Target structure description.
	 */
	int struct_size;	/* Size of the target structure. */
	int ctx_offset;		/* Offset of the ber_dec_ctx_t member */

	/*
	 * Tags to members mapping table (sorted).
	 */
	asn1_TYPE_tag2member_t *tag2el;
	int tag2el_count;

	/*
	 * Description of an extensions group.
	 */
	int ext_after;	/* Extensions start after this member */
	int ext_before;	/* Extensions stop before this member */
} asn1_SEQUENCE_specifics_t;


/*
 * A set specialized functions dealing with the SEQUENCE type.
 */
asn_struct_free_f SEQUENCE_free;
asn_struct_print_f SEQUENCE_print;
asn_constr_check_f SEQUENCE_constraint;
ber_type_decoder_f SEQUENCE_decode_ber;
der_type_encoder_f SEQUENCE_encode_der;
xer_type_encoder_f SEQUENCE_encode_xer;

#endif	/* _CONSTR_SEQUENCE_H_ */
