#include <rpc/rpc.h>
#include <dis/dis.h>

enum simx_stat {
	SIMx_SUCCESS = 0,
	SIMx_ERROR = 1,
	SIMx_NO_SERVER = 2,
	SIMx_TIMEOUT = 4,
	SIMx_NOT_FOUND = 5,
};
typedef enum simx_stat simx_stat;
bool_t xdr_simx_stat();


struct simx_register_app_args {
	char *site_name;
	u_short application_id;
};
typedef struct simx_register_app_args simx_register_app_args;
bool_t xdr_simx_register_app_args();


struct simx_register_app_result {
	simx_stat status_code;
	dis_simulation_addr result;
};
typedef struct simx_register_app_result simx_register_app_result;
bool_t xdr_simx_register_app_result();


struct simx_entity_type_attr {
	dis_entity_type *type;
	char *attr;
};
typedef struct simx_entity_type_attr simx_entity_type_attr;
bool_t xdr_simx_entity_type_attr();


struct simx_lookup_entity_type_result {
	simx_stat status_code;
	char *value;
};
typedef struct simx_lookup_entity_type_result simx_lookup_entity_type_result;
bool_t xdr_simx_lookup_entity_type_result();


struct simx_lookup_complete_entity_type_result {
	simx_stat status_code;
	char *kind_value;
	char *domain_value;
	char *country_value;
	char *category_value;
	char *subcategory_value;
	char *specific_value;
	char *extra_value;
};
typedef struct simx_lookup_complete_entity_type_result simx_lookup_complete_entity_type_result;
bool_t xdr_simx_lookup_complete_entity_type_result();


typedef char *simx_string;
bool_t xdr_simx_string();


struct simx_session_handle {
	char data[4];
	dis_simulation_addr address;
};
typedef struct simx_session_handle simx_session_handle;
bool_t xdr_simx_session_handle();


struct simx_startres {
	simx_stat result;
	union {
		simx_session_handle handle;
	} simx_startres_u;
};
typedef struct simx_startres simx_startres;
bool_t xdr_simx_startres();


#define SIMx_PROGRAM ((u_long)300)
#define SIMx_VERSION ((u_long)1)
#define SIMxRegisterApplicationP ((u_long)1)
extern simx_register_app_result *simxregisterapplicationp_1();
#define SIMxLookupEntityNameP ((u_long)2)
extern simx_lookup_entity_type_result *simxlookupentitynamep_1();
#define SIMxLookupEntityTypeFromPatternP ((u_long)3)
extern dis_entity_type *simxlookupentitytypefrompatternp_1();
#define SIMxLookupEntityAttributeP ((u_long)4)
extern simx_lookup_entity_type_result *simxlookupentityattributep_1();
#define SIMxLookupEntityNamesP ((u_long)5)
extern simx_lookup_complete_entity_type_result *simxlookupentitynamesp_1();

