class Print_item:
def __init__(self, item_id, item_name, item_size):
self.item_id = item_id
self.item_name = item_name
self.item_size = item_size
def get_item_id(self):
return self.item_id
def display_item(self):
print(f"""Item ID : {self.item_id}
Item name : {self.item_name}
Item size : {self.item_size}""")
class Computer:
def __init__(self, queue_size = 0, MAC_ID = 0):
self.MAC_ID = MAC_ID
self.print_queue = []
self.front = -1
self.rear = -1
self.queue_size = queue_size
def is_valid_mac(self):
check = self.MAC_ID.split(":")
if len(check) != 6:
return False
for pair in check:
if len(pair) != 2:
return False
return True
def is_full(self):
return (self.rear + 1) % self.queue_size == self.front
def is_empty(self):
return self.rear == self.front == -1
def enqueue(self, item_id, item_name, item_size):
if self.is_full():
return -1
else:
print_item = Print_item(item_id, item_name, item_size)
self.rear = (self.rear + 1) % self.queue_size
self.print_queue[self.rear] = print_item
return 1
def dequeue(self):
if self.is_empty():
return -1
else:
if self.rear == self.front:
self.front = -1
self.rear = -1
return 1
self.front = (self.front + 1) % self.queue_size
return 1
def display_queue(self):
if self.is_empty:
return None
for item in self.queue:
item.display_item()
class Company_Server:
def __init__(self, server_size, name):
self.head = -1
self.server = [Computer() for i in range(server_size)] ##nodes --> computer. data --> MAC_ID?
self.nextFree = 0
self.company_name = name
self.server_size = server_size
def get_name(self):
return self.company_name
def get_size(self):
return self.server_size
def insert_computer(self, MAC_ID):
if self.nextFree == self.server_size:
return -1
else:
self.server[self.nextFree].MAC_ID = MAC_ID
if self.head == -1:
self.head = self.nextFree
else:
index = self.head
while self.server[index].next != -1:
index = self.server[index].next
self.server[index].next = self.nextFree
self.nextFree += 1
return 1
def delete_computer(self, MAC_ID):
if self.head == -1:
return -1
prev = -1
index = self.head
while index != -1 and self.server[index].MAC_ID != MAC_ID:
prev = index
index = self.server[index].next
if index == -1:
return -1
else:
self.server[prev].next = self.server[index].next
self.server[index] = Computer()
self.nextFree = index
def display_server(self):
if self.head == -1:
return None
else:
index = self.head
while index != -1:
print(self.server[index].MAC_ID, end= '->')
index = self.server[index].next
print("None")
Click Run or press shift + ENTER to run code