Release 2017.1
[cascardo/rnetclient.git] / rnet_message.h
index 8348987..d19cd9c 100644 (file)
 #ifndef _RNET_MESSAGE_H
 #define _RNET_MESSAGE_H
 
+#include <sys/types.h>
 #include <stdint.h>
 
 struct rnet_message {
-       int len;
-       int alen;
+       size_t len;
+       size_t alen;
        char buffer[];
 };
 
 struct rnet_message * rnet_message_new(void);
 void rnet_message_del(struct rnet_message *message);
+int rnet_message_expand(struct rnet_message **message, size_t len);
+int rnet_message_strip(struct rnet_message *message, size_t len);
 
-int rnet_message_add_u32(struct rnet_message *msg, char *key, uint32_t val);
-int rnet_message_add_ascii(struct rnet_message *msg, char *key, char *val);
+int rnet_message_add_u32(struct rnet_message **msg, char *key, uint32_t val);
+int rnet_message_add_ascii(struct rnet_message **msg, char *key, char *val);
+int rnet_message_add_u8(struct rnet_message **msg, char *key, uint8_t val);
+int rnet_message_add_u16(struct rnet_message **msg, char *key, uint16_t val);
+int rnet_message_add_u64(struct rnet_message **msg, char *key, uint64_t val);
+int rnet_message_add_buffer(struct rnet_message **msg, char *key,
+                               char *buffer, size_t len);
+
+int rnet_message_parse(struct rnet_message *msg, char *skey,
+                               char** value, int *vlen);
 
 #endif