]> rtime.felk.cvut.cz Git - frescor/fwp.git/blob - fwp/lib/core/fwp_msgb.h
c588472abbfd2bed8c5f17d8a6c117ac929b5c2a
[frescor/fwp.git] / fwp / lib / core / fwp_msgb.h
1 #ifndef _FWP_MSGB_H
2 #define _FWP_MSGB_H
3
4 #include <sys/types.h>
5 #include <sys/socket.h>
6 #include <string.h>
7 /*#include <sys/un.h>
8 #include <netinet/in.h>
9 #include <arpa/inet.h>
10 #include <unistd.h>*/
11
12 #define ADDRLEN_MAX 30
13
14 typedef
15 struct fwp_sockaddr{
16         char            addr[ADDRLEN_MAX];
17         socklen_t       addrlen;
18 } fwp_sockaddr_t;
19
20 typedef
21 struct fwp_msgb {
22         size_t                  buffer_size;
23         size_t                  len;            /**< msg data length*/
24         unsigned char           *data;          /**< msg data */
25         unsigned char           *tail;          /**< msg data end*/
26         struct fwp_sockaddr     *peer;          /**< peer address*/
27         /*int flags;  MSG_DONTWAIT for async*/
28 } fwp_msgb_t;
29
30 struct fwp_msgb* fwp_msgb_alloc(size_t buf_size);
31 void fwp_msgb_free(struct fwp_msgb* msgb);
32
33 inline unsigned char* fwp_msgb_put(struct fwp_msgb *msgb, unsigned int len);
34 inline unsigned char* fwp_msgb_pull(struct fwp_msgb *msgb, unsigned int len);
35 inline unsigned char* fwp_msgb_push(struct fwp_msgb* msgb, unsigned int len);
36 inline void fwp_msgb_reset_data_pointer(struct fwp_msgb* msgb);
37 inline void fwp_msgb_reset_data(struct fwp_msgb* msgb);
38 inline unsigned char* fwp_msgb_shift(struct fwp_msgb* msgb, unsigned int len);
39 inline void fwp_msgb_reserve(fwp_msgb_t *msgb, unsigned int len);
40
41 /*struct fwp_socketaddr* fwp_socket_create(struct sockaddr *_addr, socklen_t _addrlen);
42 inline void fwp_socket_set(struct fwp_socketaddr *fwpsock, struct sockaddr *_addr, 
43                                   socklen_t _addrlen);
44 */
45 #endif /* _FWP_MSGB_H */