#ifndef _NETSTRING_H_INCLUDED_
#define _NETSTRING_H_INCLUDED_
#include <vstring.h>
#include <vstream.h>
#define NETSTRING_ERR_EOF 1
#define NETSTRING_ERR_TIME 2
#define NETSTRING_ERR_FORMAT 3
#define NETSTRING_ERR_SIZE 4
extern void netstring_except(VSTREAM *, int);
extern void netstring_setup(VSTREAM *, int);
extern ssize_t netstring_get_length(VSTREAM *);
extern VSTRING *netstring_get_data(VSTREAM *, VSTRING *, ssize_t);
extern void netstring_get_terminator(VSTREAM *);
extern VSTRING *netstring_get(VSTREAM *, VSTRING *, ssize_t);
extern void netstring_put(VSTREAM *, const char *, ssize_t);
extern void netstring_put_multi(VSTREAM *,...);
extern void netstring_fflush(VSTREAM *);
extern VSTRING *netstring_memcpy(VSTRING *, const char *, ssize_t);
extern VSTRING *netstring_memcat(VSTRING *, const char *, ssize_t);
#define NETSTRING_PUT_BUF(str, buf) \
netstring_put((str), vstring_str(buf), VSTRING_LEN(buf))
#endif