From d50d0a288417ebb69cc43b0e8401672a8dcc81b4 Mon Sep 17 00:00:00 2001
From: Thomas Letzgus <thomas.letzgus@student.reutlingen-university.de>
Date: Thu, 25 May 2023 18:33:35 +0000
Subject: [PATCH] Upload New File

---
 buffer.py | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 buffer.py

diff --git a/buffer.py b/buffer.py
new file mode 100644
index 0000000..55277a5
--- /dev/null
+++ b/buffer.py
@@ -0,0 +1,32 @@
+import threading
+
+
+class Buffer:
+    def __init__(self, size):
+        self.size = size
+        self.buffer = []
+        self.mutex = threading.Lock()
+        self.condition = threading.Condition(self.mutex)
+
+    def push(self, item):
+        if len(self.buffer) == self.size:
+            raise ValueError("Buffer is full")
+
+        with self.condition:
+            self.buffer.append(item)
+            self.condition.notify()
+
+    def pop(self):
+        if len(self.buffer) == 0:
+            raise ValueError("Buffer is empty")
+
+        with self.condition:
+            item = self.buffer.pop(0)
+            self.condition.notify()
+            return item
+
+    def full(self):
+        return len(self.buffer) == self.size
+
+    def empty(self):
+        return len(self.buffer) == 0
-- 
GitLab