
/*
	marshaling-burffer.h -- Marshaling Buffer Library Header File.
	Created on: 2008/11/28 11:49:18
	~/dsys/highscore/tcp/marshaling-burffer.h
*/

#ifndef	_MARSHALLING_BUFFER_H_
#define	_MARSHALLING_BUFFER_H_

#include <sys/types.h> /* size_t */

struct marbuf {
	uint32_t  mb_bytes;
	char	 *mb_current;
	char	 *mb_buf;
	size_t	  mb_buflen;
};
typedef struct marbuf marbuf_t;

extern int marbuf_init( marbuf_t *mb, size_t len );
extern void marbuf_final( marbuf_t *mb );
extern int marbuf_receive_message( marbuf_t *mb, int socket );
extern int marbuf_send_message( marbuf_t *mb, int socket );
extern int marbuf_marshal_int( marbuf_t *mb, int data );
extern int marbuf_unmarshal_int( marbuf_t *mb, int *datap );
extern int marbuf_marshal_byte_array( marbuf_t *mb, char data[], int data_len );
extern int marbuf_unmarshal_byte_array( marbuf_t *mb, char data[], int data_len );

#endif	/*_MARSHALLING_BUFFER_H_*/
