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

#ifndef	_ResultCode_H_
#define	_ResultCode_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum ResultCode {
	ResultCode_ok	= 0,
	ResultCode_illegalClientId	= 1,
	ResultCode_illegalBankId	= 2,
	ResultCode_illegalSlotId	= 3,
	ResultCode_cardNotPresent	= 100,
	ResultCode_cardUnresponsive	= 101,
	ResultCode_cardTransmissionError	= 102
	/*
	 * Enumeration is extensible
	 */
} e_ResultCode;

/* ResultCode */
typedef long	 ResultCode_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ResultCode;
asn_struct_free_f ResultCode_free;
asn_struct_print_f ResultCode_print;
asn_constr_check_f ResultCode_constraint;
ber_type_decoder_f ResultCode_decode_ber;
der_type_encoder_f ResultCode_encode_der;
xer_type_decoder_f ResultCode_decode_xer;
xer_type_encoder_f ResultCode_encode_xer;

#ifdef __cplusplus
}
#endif

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