示例#1
0
 def upload_successful(self, d, f, upload_time):
     """
     Un device "d" carica in upload correttamente il file "f"
     :param d: device
     :param f: file caricato
     :param upload_time: tempo di upload
     """
     self.upload_for_success.append(
         ts.TimedData(d.id + f.get_id(), upload_time, timestamp=False)
     )
示例#2
0
 def download_start(self, d, f):
     """
     Un device "d" inizia a scaricare il file "f" dal server
     """
     # Timestamp corrente
     t = self.now()
     # Ho un nuovo file in download
     self.current_downloading += 1
     # Aggiorno il numero di download in parallelo nello storico dati
     self.downloading.insert_or_update(t, self.current_downloading)
     # Salvo l'informazione di download, per calcolare al suo termine la durata del trasferimento
     self.pending_download.append(ts.TimedData(str(d.id) + '_' + str(f.get_id()), t))
示例#3
0
 def login(self, d):
     """
     Un nuovo device "d" effettua il login
     """
     # Timestamp corrente
     t = self.now()
     # Ho un nuovo device connesso
     self.current_online_devices += 1
     # Aggiorno il numero di dispositivi connessi nello storico dati
     self.online_devices.insert_or_update(t, self.current_online_devices)
     # Salvo l'informazione di login, per calcolare al momento del logout la durata della sessione
     self.pending_online.append(ts.TimedData(d.id, t))
示例#4
0
 def logout(self, d):
     """
     Un device "d" effettua il logout
     """
     # Timestamp corrente
     t = self.now()
     # Ho un device che si disconnette
     self.current_online_devices -= 1
     # Aggiorno il numero di dispositivi connessi nello storico daticurrent_uploading
     self.online_devices.insert_or_update(t, self.current_online_devices)
     # Ricavo la durata di sessione, partendo dal timestamp di login
     x = self.pending_online.search_by_data(d.id)[0]
     self.pending_online.remove(x)
     t_login = x.get_time()
     session = t - t_login
     self.online_for.append(
         ts.TimedData(d.id, session, timestamp=False)
     )
示例#5
0
 def upload_end(self, d, f, up_rate):
     """
     Un device "d" finisce di caricare il file "f"
     """
     # Timestamp corrente
     t = self.now()
     # Ho un upload che termina (con o senza successo)
     self.current_uploading -= 1
     # Aggiorno il numero di download in parallelo nello storico dati
     self.uploading.insert_or_update(t, self.current_uploading)
     # Ricavo la durata del trasferimento, partendo dal timestamp di inizio upload
     x = self.pending_upload.search_by_data(d.id + f.get_id())[0]
     self.pending_upload.remove(x)
     t_login = x.get_time()
     session = t - t_login
     self.upload_for.append(
         ts.TimedData(d.id + f.get_id(), session, timestamp=False)
     )
     # Valori di carico sul server
     i = t_login
     while i <= t:
         self.server_load_in[i - 1] += up_rate
         i += 1
示例#6
0
 def download_end(self, d, f, dw_rate):
     """
     Un device "d" finisce di scaricare il file "f"
     """
     # Timestamp corrente
     t = self.now()
     # Ho un download che termina (con o senza successo)
     self.current_downloading -= 1
     # Aggiorno il numero di download in parallelo nello storico dati
     self.downloading.insert_or_update(t, self.current_downloading)
     # Ricavo la durata del trasferimento, partendo dal timestamp di inizio download
     x = self.pending_download.search_by_data(str(d.id) + '_' + str(f.get_id()))[0]
     self.pending_download.remove(x)
     t_start = x.get_time()
     dw_duration = t - t_start
     self.download_for.append(
         ts.TimedData(d.id + f.get_id(), dw_duration, timestamp=False)
     )
     # Valori di carico sul server
     i = t_start
     while i <= t:
         self.server_load_out[i - 1] += dw_rate
         i += 1
     self.server_downloaded_data += dw_duration * dw_rate