def update_timestamp(self, pit_entry: PendingInterestTableEntry): self.container.remove(pit_entry) new_entry = PendingInterestTableEntry(pit_entry.name, pit_entry.faceids, interest=pit_entry.interest, local_app=pit_entry.local_app, fib_entries_already_used=pit_entry.fib_entries_already_used, faces_already_nacked=pit_entry.faces_already_nacked, number_of_forwards=pit_entry.number_of_forwards) new_entry.faces_already_nacked = pit_entry.faces_already_nacked self.container.append(new_entry)
def remove_pit_entry_by_fid(self, faceid: int): for pit_entry in self.container: if faceid in pit_entry.faceids: self.container.remove(pit_entry) new_faceids = pit_entry.faceids.remove(faceid) new_entry = PendingInterestTableEntry(pit_entry.name, new_faceids, interest=pit_entry.interest, local_app=pit_entry.local_app, fib_entries_already_used=pit_entry.fib_entries_already_used, faces_already_nacked=pit_entry.faces_already_nacked, number_of_forwards=pit_entry.number_of_forwards) new_entry.faces_already_nacked = pit_entry.faces_already_nacked self.container.append(new_entry)
def add_pit_entry(self, name, faceid: int, outgoing_face: int, interest: Interest = None, local_app=False): for pit_entry in self.container: if pit_entry.name == name: if faceid in pit_entry.face_id and local_app in pit_entry.local_app: if outgoing_face in pit_entry.outgoing_faces: return else: self.container.remove(pit_entry) pit_entry.outgoing_faces.append(outgoing_face) self.container.append(pit_entry) return self.container.remove(pit_entry) pit_entry._faceids.append(faceid) pit_entry._local_app.append(local_app) if outgoing_face not in pit_entry.outgoing_faces: pit_entry.outgoing_faces.append(outgoing_face) self.container.append(pit_entry) return self.container.append( PendingInterestTableEntry(name, faceid, outgoing_face, interest, local_app))
def add_pit_entry(self, name, faceid: Union[int, List[int]], interest: Interest = None, local_app=False, is_session: bool = False): for pit_entry in self.container: if pit_entry.name == name: if faceid in pit_entry.faceids and local_app in pit_entry.local_app: return self.container.remove(pit_entry) if isinstance(faceid, int): pit_entry.faceids.append(faceid) elif isinstance(faceid, list): pit_entry.faceids.extend(fid for fid in faceid if fid not in pit_entry.faceids) pit_entry.local_app.append(local_app) self.container.append(pit_entry) return self.container.append( PendingInterestTableEntry(name, faceid, interest, local_app, is_session=is_session))
def update_timestamp(self, pit_entry: PendingInterestTableEntry): self.container.remove(pit_entry) new_entry = PendingInterestTableEntry(pit_entry.name, pit_entry.faceids, interest=pit_entry.interest, local_app=pit_entry.local_app) self.container.append(new_entry)