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

#ifndef	_SABP_TriggeringMessage_H_
#define	_SABP_TriggeringMessage_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum SABP_TriggeringMessage {
	SABP_TriggeringMessage_initiating_message	= 0,
	SABP_TriggeringMessage_successful_outcome	= 1,
	SABP_TriggeringMessage_unsuccessful_outcome	= 2,
	SABP_TriggeringMessage_outcome	= 3
} e_SABP_TriggeringMessage;

/* SABP_TriggeringMessage */
typedef long	 SABP_TriggeringMessage_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SABP_TriggeringMessage;
asn_struct_free_f SABP_TriggeringMessage_free;
asn_struct_print_f SABP_TriggeringMessage_print;
asn_constr_check_f SABP_TriggeringMessage_constraint;
ber_type_decoder_f SABP_TriggeringMessage_decode_ber;
der_type_encoder_f SABP_TriggeringMessage_encode_der;
xer_type_decoder_f SABP_TriggeringMessage_decode_xer;
xer_type_encoder_f SABP_TriggeringMessage_encode_xer;
per_type_decoder_f SABP_TriggeringMessage_decode_uper;
per_type_encoder_f SABP_TriggeringMessage_encode_uper;
per_type_decoder_f SABP_TriggeringMessage_decode_aper;
per_type_encoder_f SABP_TriggeringMessage_encode_aper;

#ifdef __cplusplus
}
#endif

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