/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _COORDINATOR_H_RPCGEN
#define _COORDINATOR_H_RPCGEN

#include <rpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif


typedef struct {
	u_int IntArr_len;
	int *IntArr_val;
} IntArr;

typedef struct {
	u_int FloatArr_len;
	float *FloatArr_val;
} FloatArr;

typedef struct {
	u_int DoubleArr_len;
	double *DoubleArr_val;
} DoubleArr;

typedef struct {
	u_int LongArr_len;
	u_long *LongArr_val;
} LongArr;

typedef struct {
	u_int String_len;
	char *String_val;
} String;

typedef struct {
	u_int StrArr_len;
	String *StrArr_val;
} StrArr;

typedef struct Table *TablePtr;

enum LockStatusType {
	ALLOCATED = 0,
	FREE = 0 + 1,
	FAILURE = 0 + 2,
};
typedef enum LockStatusType LockStatusType;

struct Node {
	int NodeId;
	String Name;
	String IPaddress;
	String ArchType;
	String FileSys;
	int Capacity;
	u_long RangeBegin;
	u_long RangeEnd;
};
typedef struct Node Node;

typedef struct {
	u_int NodeArr_len;
	Node *NodeArr_val;
} NodeArr;

struct Table {
	Node NodeInf;
	TablePtr Next;
};
typedef struct Table Table;

struct MagicNumber {
	float hpf;
};
typedef struct MagicNumber MagicNumber;

typedef struct {
	u_int MagicNumberArr_len;
	MagicNumber *MagicNumberArr_val;
} MagicNumberArr;

struct Lock {
	int NodeId;
	int LockId;
	MagicNumber MagicNum;
};
typedef struct Lock Lock;

typedef struct {
	u_int LockArr_len;
	Lock *LockArr_val;
} LockArr;

struct LocalLock {
	Lock LockInf;
	int RibId;
	int SeqNum;
	LockStatusType Status;
	String IPAddress;
};
typedef struct LocalLock LocalLock;

typedef struct {
	u_int LocalLockArr_len;
	LocalLock *LocalLockArr_val;
} LocalLockArr;

struct LockRequest {
	LockArr LockList;
	IntArr Perm;
	int NodeId;
	int SeqNum;
};
typedef struct LockRequest LockRequest;

struct RibInf {
	int NodeId;
	String Directives;
	String FuncName;
	StrArr Files;
	int Pid;
};
typedef struct RibInf RibInf;

#define COORDINATOR 0x33ffffff
#define INITIALIZE 1

#if defined(__STDC__) || defined(__cplusplus)
#define BROADCAST_SUBSCRIBE 1
extern  NodeArr * broadcast_subscribe_1(StrArr *, CLIENT *);
extern  NodeArr * broadcast_subscribe_1_svc(StrArr *, struct svc_req *);
#define BROADCAST_JOIN 2
extern  int * broadcast_join_1(Node *, CLIENT *);
extern  int * broadcast_join_1_svc(Node *, struct svc_req *);
#define BOOT_UP 3
extern  int * boot_up_1(NodeArr *, CLIENT *);
extern  int * boot_up_1_svc(NodeArr *, struct svc_req *);
extern int coordinator_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define BROADCAST_SUBSCRIBE 1
extern  NodeArr * broadcast_subscribe_1();
extern  NodeArr * broadcast_subscribe_1_svc();
#define BROADCAST_JOIN 2
extern  int * broadcast_join_1();
extern  int * broadcast_join_1_svc();
#define BOOT_UP 3
extern  int * boot_up_1();
extern  int * boot_up_1_svc();
extern int coordinator_1_freeresult ();
#endif /* K&R C */
#define UNSUBSCRIBE 2

#if defined(__STDC__) || defined(__cplusplus)
#define BROADCAST_LEAVE 1
extern  void * broadcast_leave_2(int *, CLIENT *);
extern  void * broadcast_leave_2_svc(int *, struct svc_req *);
#define LEAVE_SYSTEM 2
extern  void * leave_system_2(void *, CLIENT *);
extern  void * leave_system_2_svc(void *, struct svc_req *);
extern int coordinator_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define BROADCAST_LEAVE 1
extern  void * broadcast_leave_2();
extern  void * broadcast_leave_2_svc();
#define LEAVE_SYSTEM 2
extern  void * leave_system_2();
extern  void * leave_system_2_svc();
extern int coordinator_2_freeresult ();
#endif /* K&R C */
#define SERVER 3

#if defined(__STDC__) || defined(__cplusplus)
#define PROCESS_RIB 1
extern  u_long * process_rib_3(RibInf *, CLIENT *);
extern  u_long * process_rib_3_svc(RibInf *, struct svc_req *);
#define INIT_FILE_PTR 2
extern  int * init_file_ptr_3(String *, CLIENT *);
extern  int * init_file_ptr_3_svc(String *, struct svc_req *);
#define PUT_IN_FILE 3
extern  int * put_in_file_3(String *, CLIENT *);
extern  int * put_in_file_3_svc(String *, struct svc_req *);
#define CLOSE_FILE 4
extern  int * close_file_3(String *, CLIENT *);
extern  int * close_file_3_svc(String *, struct svc_req *);
#define CLEANUP 5
extern  void * cleanup_3(RibInf *, CLIENT *);
extern  void * cleanup_3_svc(RibInf *, struct svc_req *);
#define REMOVE_FILES 6
extern  void * remove_files_3(RibInf *, CLIENT *);
extern  void * remove_files_3_svc(RibInf *, struct svc_req *);
extern int coordinator_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define PROCESS_RIB 1
extern  u_long * process_rib_3();
extern  u_long * process_rib_3_svc();
#define INIT_FILE_PTR 2
extern  int * init_file_ptr_3();
extern  int * init_file_ptr_3_svc();
#define PUT_IN_FILE 3
extern  int * put_in_file_3();
extern  int * put_in_file_3_svc();
#define CLOSE_FILE 4
extern  int * close_file_3();
extern  int * close_file_3_svc();
#define CLEANUP 5
extern  void * cleanup_3();
extern  void * cleanup_3_svc();
#define REMOVE_FILES 6
extern  void * remove_files_3();
extern  void * remove_files_3_svc();
extern int coordinator_3_freeresult ();
#endif /* K&R C */
#define GENERATOR 4

#if defined(__STDC__) || defined(__cplusplus)
#define REQUEST_LOCK_INFO 1
extern  LockArr * request_lock_info_4(int *, CLIENT *);
extern  LockArr * request_lock_info_4_svc(int *, struct svc_req *);
#define ACQUIRE_LOCKS 2
extern  LockRequest * acquire_locks_4(LockRequest *, CLIENT *);
extern  LockRequest * acquire_locks_4_svc(LockRequest *, struct svc_req *);
#define CALCULATE_CUR_MAGICNUM_VER2 3
extern  MagicNumber * calculate_cur_magicnum_ver2_4(void *, CLIENT *);
extern  MagicNumber * calculate_cur_magicnum_ver2_4_svc(void *, struct svc_req *);
extern int coordinator_4_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define REQUEST_LOCK_INFO 1
extern  LockArr * request_lock_info_4();
extern  LockArr * request_lock_info_4_svc();
#define ACQUIRE_LOCKS 2
extern  LockRequest * acquire_locks_4();
extern  LockRequest * acquire_locks_4_svc();
#define CALCULATE_CUR_MAGICNUM_VER2 3
extern  MagicNumber * calculate_cur_magicnum_ver2_4();
extern  MagicNumber * calculate_cur_magicnum_ver2_4_svc();
extern int coordinator_4_freeresult ();
#endif /* K&R C */
#define USER_INTERACTION 5

#if defined(__STDC__) || defined(__cplusplus)
#define GET_LOCKS_AVAILABLE 1
extern  LocalLockArr * get_locks_available_5(int *, CLIENT *);
extern  LocalLockArr * get_locks_available_5_svc(int *, struct svc_req *);
#define POST_RIB_INF 2
extern  u_long * post_rib_inf_5(RibInf *, CLIENT *);
extern  u_long * post_rib_inf_5_svc(RibInf *, struct svc_req *);
#define RESULT_INTIMATION 3
extern  void * result_intimation_5(LongArr *, CLIENT *);
extern  void * result_intimation_5_svc(LongArr *, struct svc_req *);
#define ERROR_IN_EXECUTION 4
extern  void * error_in_execution_5(StrArr *, CLIENT *);
extern  void * error_in_execution_5_svc(StrArr *, struct svc_req *);
#define REGISTER_PROGRAM 5
extern  void * register_program_5(int *, CLIENT *);
extern  void * register_program_5_svc(int *, struct svc_req *);
#define UNREGISTER_PROGRAM 6
extern  void * unregister_program_5(int *, CLIENT *);
extern  void * unregister_program_5_svc(int *, struct svc_req *);
#define UNLOCK 7
extern  void * unlock_5(LocalLockArr *, CLIENT *);
extern  void * unlock_5_svc(LocalLockArr *, struct svc_req *);
extern int coordinator_5_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define GET_LOCKS_AVAILABLE 1
extern  LocalLockArr * get_locks_available_5();
extern  LocalLockArr * get_locks_available_5_svc();
#define POST_RIB_INF 2
extern  u_long * post_rib_inf_5();
extern  u_long * post_rib_inf_5_svc();
#define RESULT_INTIMATION 3
extern  void * result_intimation_5();
extern  void * result_intimation_5_svc();
#define ERROR_IN_EXECUTION 4
extern  void * error_in_execution_5();
extern  void * error_in_execution_5_svc();
#define REGISTER_PROGRAM 5
extern  void * register_program_5();
extern  void * register_program_5_svc();
#define UNREGISTER_PROGRAM 6
extern  void * unregister_program_5();
extern  void * unregister_program_5_svc();
#define UNLOCK 7
extern  void * unlock_5();
extern  void * unlock_5_svc();
extern int coordinator_5_freeresult ();
#endif /* K&R C */
#define ADMINISTRATION 6

#if defined(__STDC__) || defined(__cplusplus)
#define DEPOSIT_LOCKS 1
extern  void * deposit_locks_6(int *, CLIENT *);
extern  void * deposit_locks_6_svc(int *, struct svc_req *);
#define REMOVE_LOCKS 2
extern  void * remove_locks_6(int *, CLIENT *);
extern  void * remove_locks_6_svc(int *, struct svc_req *);
#define SET_LOCK_ALLOCATED 3
extern  void * set_lock_allocated_6(Lock *, CLIENT *);
extern  void * set_lock_allocated_6_svc(Lock *, struct svc_req *);
#define SET_LOCK_FREE 4
extern  void * set_lock_free_6(Lock *, CLIENT *);
extern  void * set_lock_free_6_svc(Lock *, struct svc_req *);
extern int coordinator_6_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define DEPOSIT_LOCKS 1
extern  void * deposit_locks_6();
extern  void * deposit_locks_6_svc();
#define REMOVE_LOCKS 2
extern  void * remove_locks_6();
extern  void * remove_locks_6_svc();
#define SET_LOCK_ALLOCATED 3
extern  void * set_lock_allocated_6();
extern  void * set_lock_allocated_6_svc();
#define SET_LOCK_FREE 4
extern  void * set_lock_free_6();
extern  void * set_lock_free_6_svc();
extern int coordinator_6_freeresult ();
#endif /* K&R C */
#define NODE_FAILURE 7

#if defined(__STDC__) || defined(__cplusplus)
#define REGISTER_TIMER_PID 1
extern  void * register_timer_pid_7(int *, CLIENT *);
extern  void * register_timer_pid_7_svc(int *, struct svc_req *);
#define NODE_FAILED 2
extern  void * node_failed_7(int *, CLIENT *);
extern  void * node_failed_7_svc(int *, struct svc_req *);
#define BROADCAST_FAIL 3
extern  void * broadcast_fail_7(int *, CLIENT *);
extern  void * broadcast_fail_7_svc(int *, struct svc_req *);
extern int coordinator_7_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define REGISTER_TIMER_PID 1
extern  void * register_timer_pid_7();
extern  void * register_timer_pid_7_svc();
#define NODE_FAILED 2
extern  void * node_failed_7();
extern  void * node_failed_7_svc();
#define BROADCAST_FAIL 3
extern  void * broadcast_fail_7();
extern  void * broadcast_fail_7_svc();
extern int coordinator_7_freeresult ();
#endif /* K&R C */

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_IntArr (XDR *, IntArr*);
extern  bool_t xdr_FloatArr (XDR *, FloatArr*);
extern  bool_t xdr_DoubleArr (XDR *, DoubleArr*);
extern  bool_t xdr_LongArr (XDR *, LongArr*);
extern  bool_t xdr_String (XDR *, String*);
extern  bool_t xdr_StrArr (XDR *, StrArr*);
extern  bool_t xdr_TablePtr (XDR *, TablePtr*);
extern  bool_t xdr_LockStatusType (XDR *, LockStatusType*);
extern  bool_t xdr_Node (XDR *, Node*);
extern  bool_t xdr_NodeArr (XDR *, NodeArr*);
extern  bool_t xdr_Table (XDR *, Table*);
extern  bool_t xdr_MagicNumber (XDR *, MagicNumber*);
extern  bool_t xdr_MagicNumberArr (XDR *, MagicNumberArr*);
extern  bool_t xdr_Lock (XDR *, Lock*);
extern  bool_t xdr_LockArr (XDR *, LockArr*);
extern  bool_t xdr_LocalLock (XDR *, LocalLock*);
extern  bool_t xdr_LocalLockArr (XDR *, LocalLockArr*);
extern  bool_t xdr_LockRequest (XDR *, LockRequest*);
extern  bool_t xdr_RibInf (XDR *, RibInf*);

#else /* K&R C */
extern bool_t xdr_IntArr ();
extern bool_t xdr_FloatArr ();
extern bool_t xdr_DoubleArr ();
extern bool_t xdr_LongArr ();
extern bool_t xdr_String ();
extern bool_t xdr_StrArr ();
extern bool_t xdr_TablePtr ();
extern bool_t xdr_LockStatusType ();
extern bool_t xdr_Node ();
extern bool_t xdr_NodeArr ();
extern bool_t xdr_Table ();
extern bool_t xdr_MagicNumber ();
extern bool_t xdr_MagicNumberArr ();
extern bool_t xdr_Lock ();
extern bool_t xdr_LockArr ();
extern bool_t xdr_LocalLock ();
extern bool_t xdr_LocalLockArr ();
extern bool_t xdr_LockRequest ();
extern bool_t xdr_RibInf ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_COORDINATOR_H_RPCGEN */

