class Protocol: def __init__(self, recv_queue, send_queue, total_workers): self.connection = Connection() self.pending_connections = total_workers self.receiver = self.connection.create_direct_receiver(recv_queue) self.sender = self.connection.create_direct_sender(send_queue) def start_connection(self, callback): self.callback = callback self.receiver.start_receiving(self.data_read) def data_read(self, msg_type, msg): if msg_type == EOF: #self.receiver.close() self.pending_connections -= 1 if self.pending_connections == 0: self.receiver.close() else: self.callback(json.loads(msg)) def send_data(self, top_cities): self.sender.send(TOP_CITIES, json.dumps(top_cities)) self.sender.send(EOF, '')
class Protocol: def __init__(self, recv_queue): self.connection = Connection() self.expected = 3 self.actual = 0 self.receiver = self.connection.create_direct_receiver(recv_queue) def start_connection(self, callback_top, callback_date, callback_count): self.callback_top = callback_top self.callback_date = callback_date self.callback_count = callback_count self.receiver.start_receiving(self.data_read) def data_read(self, msg_type, msg): if msg_type == EOF: self.actual += 1 if self.actual == self.expected: self.connection.close() elif msg_type == TOP_CITIES: self.callback_top(json.loads(msg)) elif msg_type == DATE_RESULTS: self.callback_date(json.loads(msg)) elif msg_type == TOTAL_COUNT: self.callback_count(float(msg))
class Protocol: def __init__(self, recv_queue, send_queue, total_workers): self.connection = Connection() self.total_workers = total_workers self.receiver = self.connection.create_direct_receiver(recv_queue) self.sender = self.connection.create_distributed_work_sender( send_queue) def start_connection(self): #, callback): #self.callback = callback self.receiver.start_receiving(self.data_read) #def send_data(self, data): # self.sender.send(NORMAL, data) def data_read(self, msg_type, msg): self.receiver.close() self.send_eof() self.connection.close() '''if msg_type == "EOF": self.receiver.close() self.send_eof() self.connection.close() else: self.callback(msg)''' def send_eof(self): for i in range(0, self.total_workers): self.sender.send(EOF, '')
class Protocol: def __init__(self, recv_queue, send_queue): self.connection = Connection() self.receiver = self.connection.create_direct_receiver(recv_queue) self.sender = self.connection.create_direct_sender(send_queue) def start_connection(self, callback): self.callback = callback self.receiver.start_receiving(self.data_read) def data_read(self, msg_type, msg): if msg_type == EOF: self.receiver.close() else: [positivi, deceduti] = msg.split(',') self.callback(int(positivi), int(deceduti)) def send_data(self, percentage): self.sender.send(TOTAL_COUNT, str(percentage)) self.sender.send(EOF, '')
class Protocol: def __init__(self, recv_queue, send_queue, total_workers): self.connection = Connection() self.pending_connections = total_workers self.receiver = self.connection.create_direct_receiver(recv_queue) self.sender = self.connection.create_direct_sender(send_queue) self.send_queue = send_queue def start_connection(self): self.receiver.start_receiving(self.data_read) def data_read(self, msg_type, msg): if msg_type == EOF: self.pending_connections -= 1 if self.pending_connections == 0: self.receiver.close() self.sender.send(EOF, '') self.connection.close()
class Protocol: def __init__(self, recv_queue, send_queue, master_queue): self.connection = Connection() self.receiver = self.connection.create_direct_receiver(recv_queue) self.sender = self.connection.create_direct_sender(send_queue) self.master_sender = self.connection.create_direct_sender(master_queue) def start_connection(self, callback): self.callback = callback self.receiver.start_receiving(self.data_read) def send_data(self, data): self.sender.send(NORMAL, json.dumps(data)) self.sender.send(EOF, "") #self.master_sender.send(EOF, "") def data_read(self, msg_type, msg): if msg_type == EOF: self.receiver.close() else: self.callback(msg)