External Data Representation

External Data Representation — Encoding binary data in a platform independant manner

Synopsis


#include <nhproxy/nhproxy.h>


            NhProxyXdr;
enum        nhproxy_xdr_op_t;
unsigned int nhproxy_xdr_getpos             (NhProxyXdr *xdrs);
nhproxy_bool_t nhproxy_xdr_setpos           (NhProxyXdr *xdrs,
                                             unsigned int pos);
void        nhproxy_xdr_free                (nhproxy_bool_t (*codec) (),
                                             char *addr);
#define     nhproxy_xdr_destroy             (xdrs)
nhproxy_bool_t nhproxy_xdr_long             (NhProxyXdr *xdrs,
                                             long *datum);
nhproxy_bool_t nhproxy_xdr_u_long           (NhProxyXdr *xdrs,
                                             unsigned long *datum);
nhproxy_bool_t nhproxy_xdr_short            (NhProxyXdr *xdrs,
                                             short *datum);
nhproxy_bool_t nhproxy_xdr_u_short          (NhProxyXdr *xdrs,
                                             unsigned short *datum);
nhproxy_bool_t nhproxy_xdr_int              (NhProxyXdr *xdrs,
                                             int *datum);
nhproxy_bool_t nhproxy_xdr_u_int            (NhProxyXdr *xdrs,
                                             unsigned int *datum);
nhproxy_bool_t nhproxy_xdr_char             (NhProxyXdr *xdrs,
                                             char *datum);
nhproxy_bool_t nhproxy_xdr_u_char           (NhProxyXdr *xdrs,
                                             unsigned char *datum);
nhproxy_bool_t nhproxy_xdr_enum             (NhProxyXdr *xdrs,
                                             int *datum);
nhproxy_bool_t nhproxy_xdr_bool             (NhProxyXdr *xdrs,
                                             nhproxy_bool_t *datum);
nhproxy_bool_t nhproxy_xdr_string           (NhProxyXdr *xdrs,
                                             char **datum,
                                             unsigned int maxsize);
nhproxy_bool_t nhproxy_xdr_bytes            (NhProxyXdr *xdrs,
                                             char **datum,
                                             unsigned int *len,
                                             unsigned int maxlen);
nhproxy_bool_t nhproxy_xdr_wrapstring       (NhProxyXdr *xdrs,
                                             char **datum);
nhproxy_bool_t nhproxy_xdr_vector           (NhProxyXdr *xdrs,
                                             char *addr,
                                             unsigned int len,
                                             unsigned int size,
                                             nhproxy_bool_t (*codec) ());
nhproxy_bool_t nhproxy_xdr_array            (NhProxyXdr *xdrs,
                                             char **addr,
                                             unsigned int *len,
                                             unsigned int maxlen,
                                             unsigned int size,
                                             nhproxy_bool_t (*codec) ());

void        nhproxy_xdrmem_create           (NhProxyXdr *xdrs,
                                             char *addr,
                                             unsigned int size,
                                             nhproxy_xdr_op_t op);
void        nhproxy_xdrio_create            (NhProxyXdr *xdrs,
                                             NhProxyIO *io,
                                             nhproxy_xdr_op_t op);

Description

Details

NhProxyXdr

typedef struct {
    nhproxy_genericptr_t x_data;
    nhproxy_xdr_op_t x_op;
    nhproxy_bool_t (*x_write)(struct nhproxy_xdr *xdrs,
      const nhproxy_genericptr_t addr, int size);
    nhproxy_bool_t (*x_read)(struct nhproxy_xdr *xdrs,
      nhproxy_genericptr_t addr, int size);
    void (*x_destroy)(struct nhproxy_xdr *xdrs);
    unsigned int x_pos, x_size;
} NhProxyXdr;


enum nhproxy_xdr_op_t

typedef enum {
    NHPROXY_XDR_ENCODE, NHPROXY_XDR_DECODE, NHPROXY_XDR_FREE, NHPROXY_XDR_COUNT
} nhproxy_xdr_op_t;


nhproxy_xdr_getpos ()

unsigned int nhproxy_xdr_getpos             (NhProxyXdr *xdrs);

xdrs :
Returns :

nhproxy_xdr_setpos ()

nhproxy_bool_t nhproxy_xdr_setpos           (NhProxyXdr *xdrs,
                                             unsigned int pos);

xdrs :
pos :
Returns :

nhproxy_xdr_free ()

void        nhproxy_xdr_free                (nhproxy_bool_t (*codec) (),
                                             char *addr);

codec :
addr :

nhproxy_xdr_destroy()

#define nhproxy_xdr_destroy(xdrs)	(*(xdrs)->x_destroy)(xdrs)

xdrs :

nhproxy_xdr_long ()

nhproxy_bool_t nhproxy_xdr_long             (NhProxyXdr *xdrs,
                                             long *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_u_long ()

nhproxy_bool_t nhproxy_xdr_u_long           (NhProxyXdr *xdrs,
                                             unsigned long *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_short ()

nhproxy_bool_t nhproxy_xdr_short            (NhProxyXdr *xdrs,
                                             short *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_u_short ()

nhproxy_bool_t nhproxy_xdr_u_short          (NhProxyXdr *xdrs,
                                             unsigned short *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_int ()

nhproxy_bool_t nhproxy_xdr_int              (NhProxyXdr *xdrs,
                                             int *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_u_int ()

nhproxy_bool_t nhproxy_xdr_u_int            (NhProxyXdr *xdrs,
                                             unsigned int *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_char ()

nhproxy_bool_t nhproxy_xdr_char             (NhProxyXdr *xdrs,
                                             char *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_u_char ()

nhproxy_bool_t nhproxy_xdr_u_char           (NhProxyXdr *xdrs,
                                             unsigned char *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_enum ()

nhproxy_bool_t nhproxy_xdr_enum             (NhProxyXdr *xdrs,
                                             int *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_bool ()

nhproxy_bool_t nhproxy_xdr_bool             (NhProxyXdr *xdrs,
                                             nhproxy_bool_t *datum);

xdrs :
datum :
Returns :

nhproxy_xdr_string ()

nhproxy_bool_t nhproxy_xdr_string           (NhProxyXdr *xdrs,
                                             char **datum,
                                             unsigned int maxsize);

xdrs :
datum :
maxsize :
Returns :

nhproxy_xdr_bytes ()

nhproxy_bool_t nhproxy_xdr_bytes            (NhProxyXdr *xdrs,
                                             char **datum,
                                             unsigned int *len,
                                             unsigned int maxlen);

xdrs :
datum :
len :
maxlen :
Returns :

nhproxy_xdr_wrapstring ()

nhproxy_bool_t nhproxy_xdr_wrapstring       (NhProxyXdr *xdrs,
                                             char **datum);

xdrs :
datum :
Returns :

nhproxy_xdr_vector ()

nhproxy_bool_t nhproxy_xdr_vector           (NhProxyXdr *xdrs,
                                             char *addr,
                                             unsigned int len,
                                             unsigned int size,
                                             nhproxy_bool_t (*codec) ());

xdrs :
addr :
len :
size :
codec :
Returns :

nhproxy_xdr_array ()

nhproxy_bool_t nhproxy_xdr_array            (NhProxyXdr *xdrs,
                                             char **addr,
                                             unsigned int *len,
                                             unsigned int maxlen,
                                             unsigned int size,
                                             nhproxy_bool_t (*codec) ());

xdrs :
addr :
len :
maxlen :
size :
codec :
Returns :

nhproxy_xdrmem_create ()

void        nhproxy_xdrmem_create           (NhProxyXdr *xdrs,
                                             char *addr,
                                             unsigned int size,
                                             nhproxy_xdr_op_t op);

xdrs :
addr :
size :
op :

nhproxy_xdrio_create ()

void        nhproxy_xdrio_create            (NhProxyXdr *xdrs,
                                             NhProxyIO *io,
                                             nhproxy_xdr_op_t op);

xdrs :
io :
op :