// -*-c++-*-
/* This file was automatically generated by rpcc. */

#ifndef __RPCC_BLOCK_PROTO_H_INCLUDED__
#define __RPCC_BLOCK_PROTO_H_INCLUDED__ 1

#include "xdrmisc.h"


struct put_args {
  rpc_bytes<RPC_INFINITY> key;
  rpc_bytes<RPC_INFINITY> value;
};
void *put_args_alloc ();
bool_t xdr_put_args (XDR *, void *);
RPC_STRUCT_DECL (put_args)

template<class T> bool
rpc_traverse (T &t, put_args &obj)
{
  return rpc_traverse (t, obj.key)
    && rpc_traverse (t, obj.value);
}



struct get_args {
  rpc_bytes<RPC_INFINITY> key;
};
void *get_args_alloc ();
bool_t xdr_get_args (XDR *, void *);
RPC_STRUCT_DECL (get_args)

template<class T> inline bool
rpc_traverse (T &t, get_args &obj)
{
  return rpc_traverse (t, obj.key);
}



struct get_result {
  bool ok;
  rpc_bytes<RPC_INFINITY> value;
};
void *get_result_alloc ();
bool_t xdr_get_result (XDR *, void *);
RPC_STRUCT_DECL (get_result)

template<class T> bool
rpc_traverse (T &t, get_result &obj)
{
  return rpc_traverse (t, obj.ok)
    && rpc_traverse (t, obj.value);
}



struct remove_args {
  rpc_bytes<RPC_INFINITY> key;
};
void *remove_args_alloc ();
bool_t xdr_remove_args (XDR *, void *);
RPC_STRUCT_DECL (remove_args)

template<class T> inline bool
rpc_traverse (T &t, remove_args &obj)
{
  return rpc_traverse (t, obj.key);
}


#ifndef BLOCK_PROG
#define BLOCK_PROG 400002
#endif /* !BLOCK_PROG */
extern const rpc_program block_prog_1;
enum { BLOCK_VERS = 1 };
enum {
  BLOCK_PUT = 1,
  BLOCK_GET = 2,
  BLOCK_REMOVE = 3,
};
#define BLOCK_PROG_1_APPLY_NOVOID(macro, void) \
  macro (0, false, false) \
  macro (BLOCK_PUT, put_args, bool) \
  macro (BLOCK_GET, get_args, get_result) \
  macro (BLOCK_REMOVE, remove_args, bool)
#define BLOCK_PROG_1_APPLY(macro) \
  BLOCK_PROG_1_APPLY_NOVOID(macro, void)

#endif /* !__RPCC_BLOCK_PROTO_H_INCLUDED__ */
