/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "X2AP-15-4-0.asn1"
 * 	`asn1c -D ./asn1_n1 -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
 */

#ifndef	_CellCapacityClassValue_H_
#define	_CellCapacityClassValue_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeInteger.h>

#ifdef __cplusplus
extern "C" {
#endif

/* CellCapacityClassValue */
typedef long	 CellCapacityClassValue_t;

/* Implementation */
extern asn_per_constraints_t asn_PER_type_CellCapacityClassValue_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_CellCapacityClassValue;
asn_struct_free_f CellCapacityClassValue_free;
asn_struct_print_f CellCapacityClassValue_print;
asn_constr_check_f CellCapacityClassValue_constraint;
ber_type_decoder_f CellCapacityClassValue_decode_ber;
der_type_encoder_f CellCapacityClassValue_encode_der;
xer_type_decoder_f CellCapacityClassValue_decode_xer;
xer_type_encoder_f CellCapacityClassValue_encode_xer;
oer_type_decoder_f CellCapacityClassValue_decode_oer;
oer_type_encoder_f CellCapacityClassValue_encode_oer;
per_type_decoder_f CellCapacityClassValue_decode_uper;
per_type_encoder_f CellCapacityClassValue_encode_uper;
per_type_decoder_f CellCapacityClassValue_decode_aper;
per_type_encoder_f CellCapacityClassValue_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _CellCapacityClassValue_H_ */
#include <asn_internal.h>
