Next: Creating the Client, Previous: Quick Start, Up: Quick Start [Contents][Index]
Before actually creating a client or server for this interface, one must
define the types it uses. The simplest way to define one or several
data types is to pipe their definition in XDR/RPC language through the
compiler (see grpc-compile
):
$ grpc-compile --xdr --constants < input.x > types.scm
Given the description from input.x in RPC language, this command
generates code that provides access to the constants and data types
defined therein. The resulting Scheme code, types.scm, can then
be load
ed in other Scheme files (see Loading in The GNU
Guile Reference Manual).
In addition, code in types.scm depends on Guile-RPC modules that it uses at run-time. Thus, it must first import the relevant modules:
(use-modules (rpc xdr) (rpc xdr types))
Then, the result_t
type is defined (this is the code generated by
the compiler but it can also be written “by hand”):
(define result-type (make-xdr-struct-type (list xdr-integer ;; `integer_part' xdr-unsigned-integer))) ;; `decimal_part'