buffer type switch structure - parameters and routines needed for each buffer type
Buffer Type Structure /* * The following definitions are in $TUXDIR/tuxedo/include/tmtypes.h */ #define TMTYPELEN 8 #define TMSTYPELEN 16 struct tmtype_sw_t { char type[TMTYPELEN]; /* type of buffer */ char subtype[TMSTYPELEN];/* sub-type of buffer */ long dfltsize; /* default size of buffer */ int (*initbuf)(); /* initialization function pointer */ int (*reinitbuf)(); /* re-initialization function pointer */ int (*uninitbuf)(); /* un-initialization function pointer */ long (*presend)(); /* pre-send manipulation function pointer */ void (*postsend)(); /* post-send manipulation function pointer */ long (*postrecv)(); /* post-receive manipulation function pointer */ long (*encdec)(); /* encode/decode function pointer */ int (*route)(); /* data dependent routing function pointer */ int (*filter)(); /* buffer filtering function pointer */ int (*format)(); /* buffer format string function pointer */ void (*reserved[10])(); /* reserved space for new function pointers */ }; /* * application types switch pointer * always use this pointer when accessing the table */ extern struct tmtype_sw_t *tm_typeswp;
Each buffer type and sub-type must have an entry in the tm_typesw array such that when a buffer is manipulated the appropriate routines are called. For the buffer types provided by System/T see tuxtypes(5).
An application wishing to supply their own buffer type can do so by adding an instance to the tm_typesw array in $TUXDIR/lib/tmtypesw.c ( tuxtypes(5) shows how this can be done). The semantics of the routines which must be supplied when adding a new type are specified in buffer(3).
$TUXDIR/tuxedo/include/tmtypes.h - the type switch definition $TUXDIR/lib/tmtypesw.c - the type switch instantiation
buffer(3), tuxtypes(5)