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))
Exemplo n.º 4
0
    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))
Exemplo n.º 5
0
 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)