]> git.tdb.fi Git - gldbg.git/blobdiff - source/packet.h
Use a centralized packet framework
[gldbg.git] / source / packet.h
diff --git a/source/packet.h b/source/packet.h
new file mode 100644 (file)
index 0000000..deacca0
--- /dev/null
@@ -0,0 +1,48 @@
+/* $Id$
+
+This file is part of gldbg
+Copyright © 2010  Mikko Rasa, Mikkosoft Productions
+Distributed under the GPL
+*/
+
+#ifndef PACKET_H_
+#define PACKET_H_
+
+struct GlPacket;
+typedef struct GlPacket GlPacket;
+
+GlPacket *packet_begin(unsigned short);
+void packet_send_partial(GlPacket *, int);
+void packet_send(GlPacket *, int);
+
+// XXX Should use something with fixed sizes
+
+void packet_write_char(GlPacket *, char);
+void packet_write_short(GlPacket *, short);
+void packet_write_int(GlPacket *, int);
+void packet_write_long(GlPacket *, long);
+void packet_write_long_long(GlPacket *, long long);
+void packet_write_float(GlPacket *, float);
+void packet_write_double(GlPacket *, double);
+void packet_write_pointer(GlPacket *, const void *);
+void packet_write_data(GlPacket *, const void *, unsigned);
+void packet_write_string(GlPacket *, const char *);
+void packet_write_string_array(GlPacket *, const char **, unsigned);
+
+GlPacket *packet_receive_str(const char *, unsigned *);
+
+void packet_read_char(GlPacket *, char *);
+void packet_read_short(GlPacket *, short *);
+void packet_read_int(GlPacket *, int *);
+void packet_read_long(GlPacket *, long *);
+void packet_read_long_long(GlPacket *, long long *);
+void packet_read_float(GlPacket *, float *);
+void packet_read_double(GlPacket *, double *);
+typedef const void *pointer;
+void packet_read_pointer(GlPacket *, pointer *);
+void packet_read_data(GlPacket *, pointer *);
+typedef const char *string;
+void packet_read_string(GlPacket *, string *);
+void packet_read_string_array(GlPacket *, string **);
+
+#endif