#ifndef __MSG_H__ #define __MSG_H__ #include #include #include #define MSG_TYPE_CLOSE 0 #define MSG_TYPE_CON 1 #define MSG_TYPE_ERR 2 #define MSG_TYPE_ACK 3 #define MSG_TYPE_DATA 4 struct msg { char type; unsigned short valsize; char *val; }; // used to create msg structure from buffer int msg_format_read (struct msg *m, const char *buf, size_t msize); // used to create buffer from msg structure int msg_format_write (const struct msg *m, char **buf, size_t *msize); // read a structure msg from fd int msg_read (int fd, struct msg *m); // write a structure msg to fd int msg_write (int fd, const struct msg *m); int msg_format_con (struct msg *m, const char *val, size_t valsize); int msg_format_data (struct msg *m, const char *val, size_t valsize); int msg_format_ack (struct msg *m, const char *val, size_t valsize); int msg_free (struct msg *m); void print_msg (const struct msg *m); #endif