/*
 * Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
 * From ASN.1 module "RFC1155-SMI"
 * 	found in "RFC1155-SMI.asn1"
 * 	`asn1c -fskeletons-copy`
 */

#ifndef	_ApplicationSyntax_H_
#define	_ApplicationSyntax_H_


#include <asn_application.h>

/* Including external dependencies */
#include "NetworkAddress.h"
#include "Counter.h"
#include "Gauge.h"
#include "TimeTicks.h"
#include "Opaque.h"
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum ApplicationSyntax_PR {
	ApplicationSyntax_PR_NOTHING,	/* No components present */
	ApplicationSyntax_PR_address,
	ApplicationSyntax_PR_counter,
	ApplicationSyntax_PR_gauge,
	ApplicationSyntax_PR_ticks,
	ApplicationSyntax_PR_arbitrary
} ApplicationSyntax_PR;

/* ApplicationSyntax */
typedef struct ApplicationSyntax {
	ApplicationSyntax_PR present;
	union ApplicationSyntax_u {
		NetworkAddress_t	 address;
		Counter_t	 counter;
		Gauge_t	 gauge;
		TimeTicks_t	 ticks;
		Opaque_t	 arbitrary;
	} choice;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ApplicationSyntax_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ApplicationSyntax;

#ifdef __cplusplus
}
#endif

#endif	/* _ApplicationSyntax_H_ */