/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RSPRO"
 * 	found in "../../asn1/RSPRO.asn"
 */

#ifndef	_ComponentName_H_
#define	_ComponentName_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* ComponentName */
typedef IA5String_t	 ComponentName_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ComponentName;
asn_struct_free_f ComponentName_free;
asn_struct_print_f ComponentName_print;
asn_constr_check_f ComponentName_constraint;
ber_type_decoder_f ComponentName_decode_ber;
der_type_encoder_f ComponentName_encode_der;
xer_type_decoder_f ComponentName_decode_xer;
xer_type_encoder_f ComponentName_encode_xer;

#ifdef __cplusplus
}
#endif

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