.TH "IXPMSG" 3 "2012 Dec" "libixp Manual" .SH NAME .P IxpMsg, IxpMsgMode, ixp_message .SH SYNOPSIS .nf #include typedef struct IxpMsg IxpMsg; struct IxpMsg { char* data; /* Beginning of buffer. */ char* pos; /* Current position in buffer. */ char* end; /* End of message. */ uint size; /* Size of buffer. */ uint mode; /* MsgPack or MsgUnpack. */ } enum IxpMsgMode { MsgPack, MsgUnpack, } IxpMsg ixp_message(char *data, uint length, uint mode); .fi .SH DESCRIPTION .P The IxpMsg struct represents a binary message, and is used extensively by libixp for converting messages to and from wire format. The location and size of a buffer are stored in \fIdata\fR and \fIsize\fR, respectively. \fIpos\fR points to the location in the message currently being packed or unpacked, while \fIend\fR points to the end of the message. The packing functions advance \fIpos\fR as they go, always ensuring that they don't read or write past \fIend\fR. When a message is entirely packed or unpacked, \fIpos\fR whould be less than or equal to \fIend\fR. Any other state indicates error. .P ixp_message is a convenience function to pack a construct an IxpMsg from a buffer of a given \fIlength\fR and a given \fImode\fR. \fIpos\fR and \fIdata\fR are set to \fIdata\fR and \fIend\fR is set to \fIdata\fR + \fIlength\fR. .SH SEE ALSO .P ixp_pu8(3), ixp_pu16(3), ixp_pu32(3), ixp_pu64(3), ixp_pstring(3), ixp_pstrings(3) .\" man code generated by txt2tags 2.6 (http://txt2tags.org) .\" cmdline: txt2tags -o- IxpMsg.man3