00001
00002
00003
00004
00005
00006 #ifndef _GATEWAY_PROT_H_RPCGEN
00007 #define _GATEWAY_PROT_H_RPCGEN
00008
00009 #include <rpc/rpc.h>
00010
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00016
00017 enum bamboo_stat {
00018 BAMBOO_OK = 0,
00019 BAMBOO_CAP = 1,
00020 BAMBOO_AGAIN = 2,
00021 };
00022 typedef enum bamboo_stat bamboo_stat;
00023
00024 typedef char bamboo_key[20];
00025
00026 typedef struct {
00027 u_int bamboo_value_len;
00028 char *bamboo_value_val;
00029 } bamboo_value;
00030
00031 typedef struct {
00032 u_int bamboo_placemark_len;
00033 char *bamboo_placemark_val;
00034 } bamboo_placemark;
00035
00036 struct bamboo_put_args {
00037 char *application;
00038 char *client_library;
00039 bamboo_key key;
00040 bamboo_value value;
00041 int ttl_sec;
00042 };
00043 typedef struct bamboo_put_args bamboo_put_args;
00044
00045 struct bamboo_get_args {
00046 char *application;
00047 char *client_library;
00048 bamboo_key key;
00049 int maxvals;
00050 bamboo_placemark placemark;
00051 };
00052 typedef struct bamboo_get_args bamboo_get_args;
00053
00054 struct bamboo_get_res {
00055 struct {
00056 u_int values_len;
00057 bamboo_value *values_val;
00058 } values;
00059 bamboo_placemark placemark;
00060 };
00061 typedef struct bamboo_get_res bamboo_get_res;
00062
00063 #define BAMBOO_DHT_GATEWAY_PROGRAM 708655600
00064 #define BAMBOO_DHT_GATEWAY_VERSION 2
00065
00066 #if defined(__STDC__) || defined(__cplusplus)
00067 #define BAMBOO_DHT_PROC_NULL 1
00068 extern void * bamboo_dht_proc_null_2(void *, CLIENT *);
00069 extern void * bamboo_dht_proc_null_2_svc(void *, struct svc_req *);
00070 #define BAMBOO_DHT_PROC_PUT 2
00071 extern bamboo_stat * bamboo_dht_proc_put_2(bamboo_put_args *, CLIENT *);
00072 extern bamboo_stat * bamboo_dht_proc_put_2_svc(bamboo_put_args *, struct svc_req *);
00073 #define BAMBOO_DHT_PROC_GET 3
00074 extern bamboo_get_res * bamboo_dht_proc_get_2(bamboo_get_args *, CLIENT *);
00075 extern bamboo_get_res * bamboo_dht_proc_get_2_svc(bamboo_get_args *, struct svc_req *);
00076 extern int bamboo_dht_gateway_program_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
00077
00078 #else
00079 #define BAMBOO_DHT_PROC_NULL 1
00080 extern void * bamboo_dht_proc_null_2();
00081 extern void * bamboo_dht_proc_null_2_svc();
00082 #define BAMBOO_DHT_PROC_PUT 2
00083 extern bamboo_stat * bamboo_dht_proc_put_2();
00084 extern bamboo_stat * bamboo_dht_proc_put_2_svc();
00085 #define BAMBOO_DHT_PROC_GET 3
00086 extern bamboo_get_res * bamboo_dht_proc_get_2();
00087 extern bamboo_get_res * bamboo_dht_proc_get_2_svc();
00088 extern int bamboo_dht_gateway_program_2_freeresult ();
00089 #endif
00090
00091
00092
00093 #if defined(__STDC__) || defined(__cplusplus)
00094 extern bool_t xdr_bamboo_stat (XDR *, bamboo_stat*);
00095 extern bool_t xdr_bamboo_key (XDR *, bamboo_key);
00096 extern bool_t xdr_bamboo_value (XDR *, bamboo_value*);
00097 extern bool_t xdr_bamboo_placemark (XDR *, bamboo_placemark*);
00098 extern bool_t xdr_bamboo_put_args (XDR *, bamboo_put_args*);
00099 extern bool_t xdr_bamboo_get_args (XDR *, bamboo_get_args*);
00100 extern bool_t xdr_bamboo_get_res (XDR *, bamboo_get_res*);
00101
00102 #else
00103 extern bool_t xdr_bamboo_stat ();
00104 extern bool_t xdr_bamboo_key ();
00105 extern bool_t xdr_bamboo_value ();
00106 extern bool_t xdr_bamboo_placemark ();
00107 extern bool_t xdr_bamboo_put_args ();
00108 extern bool_t xdr_bamboo_get_args ();
00109 extern bool_t xdr_bamboo_get_res ();
00110
00111 #endif
00112
00113 #ifdef __cplusplus
00114 }
00115 #endif
00116
00117 #endif