git'n a system-desgin-primer

This commit is contained in:
Aditi
2024-10-23 10:51:05 +05:30
committed by Ido Ophir
parent 9f28e4e5d3
commit 7cf2d80bcc
22 changed files with 725 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
import random
import threading
import time
class User:
def __init__(self, user_id, name):
self.user_id = user_id
self.name = name
class Meeting:
def __init__(self, meeting_id):
self.meeting_id = meeting_id
self.participants = []
self.is_active = True
def add_participant(self, user):
self.participants.append(user)
print(f"{user.name} joined the meeting {self.meeting_id}.")
def remove_participant(self, user):
self.participants.remove(user)
print(f"{user.name} left the meeting {self.meeting_id}.")
def stream_audio_video(self):
# Simulated audio/video streaming
while self.is_active:
print(f"Streaming audio/video in meeting {self.meeting_id}...")
time.sleep(2)
def end_meeting(self):
self.is_active = False
print(f"Meeting {self.meeting_id} has ended.")
class VideoConferencingSystem:
def __init__(self):
self.meetings = {}
def create_meeting(self):
meeting_id = random.randint(1000, 9999)
meeting = Meeting(meeting_id)
self.meetings[meeting_id] = meeting
print(f"Meeting {meeting_id} created.")
return meeting
# Example Usage
vcs = VideoConferencingSystem()
meeting = vcs.create_meeting()
user1 = User(1, "Alice")
user2 = User(2, "Bob")
meeting.add_participant(user1)
meeting.add_participant(user2)
stream_thread = threading.Thread(target=meeting.stream_audio_video)
stream_thread.start()
time.sleep(5)
meeting.end_meeting()
stream_thread.join()