summaryrefslogtreecommitdiff
path: root/include/peer.h
diff options
context:
space:
mode:
authorAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-06-17 00:03:18 +0200
committerAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-06-17 00:03:18 +0200
commit6543fecd7b45cc0232aa4148d0a7be125f4c49ea (patch)
treea35a4a20f7d7a091169b3927846bcdf317887b28 /include/peer.h
parent79b3a25865a1ee444fa32698670320f87dbc45a7 (diff)
downloadsilly_game-6543fecd7b45cc0232aa4148d0a7be125f4c49ea.tar.xz
*: restructure into subdirectoires and add REUSE
Diffstat (limited to 'include/peer.h')
-rw-r--r--include/peer.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/peer.h b/include/peer.h
new file mode 100644
index 0000000..63de9e5
--- /dev/null
+++ b/include/peer.h
@@ -0,0 +1,40 @@
+// SPDX-FileCopyrightText: 2024 Lizzy Fleckenstein <lizzy@vlhl.dev>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
+#ifndef PEER_H
+#define PEER_H
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+#define PEER_INBUFFER_SIZE 0x100000 // 1MB
+#define PEER_OUTBUFFER_SIZE 0x200000 // 2MB
+
+typedef uint32_t pkt_header;
+
+typedef struct {
+ int socket;
+ bool disco;
+ struct {
+ bool header;
+ size_t len;
+ size_t promised;
+ uint8_t *buffer;
+ } in;
+ // TODO: ring buffer
+ struct {
+ size_t avail;
+ size_t cursor;
+ uint8_t *buffer;
+ } out;
+} peer;
+
+void peer_init(peer *p, int socket);
+void peer_free(peer *p);
+short peer_prepare(peer *p);
+bool peer_ready(peer *p, short revents);
+bool peer_send(peer *p, uint8_t *data, size_t len);
+
+#endif