/** maximum number of Xconnections **/ #define MAXXCONNS 128 typedef enum { XMODE_NULL, XMODE_R, XMODE_W, XMODE_RW, XMODE_A, XMODE_RA } Xmode; typedef struct Xconn *Xconnection; struct Xconn { int (*open)(Xconnection, Xmode, const char *); void (*close)(Xconnection); void (*destroy)(Xconnection); int (*seek)(Xconnection, long, int, int); int (*flush)(Xconnection); void (*truncate)(Xconnection); size_t (*read)(void *, size_t, size_t, Xconnection); size_t (*write)(const void *, size_t, size_t, Xconnection); SEXP (*control)(Xconnection, SEXP); void *data; };