File d'attente prioritaire

wella_salwa Messages postés 18 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 2 mai 2024 - Modifié le 30 avril 2024 à 14:36
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 - 4 mai 2024 à 19:27

Bonjour , 

Je veux implementer une file d'attente prioritaire (basée sur deux priorités)dans le réseau NDN (simulateur NDNsim) , 

Voici la file implémentée par défaut :

Comment et ou puis-je implémenter ma file prioritaire. 

Une idée pour m'aider ?

Merci

A voir également:

4 réponses

PierrotLeFou
29 avril 2024 à 18:23

Voici une référence:

https://fr.wikipedia.org/wiki/File_de_priorit%C3%A9

On peut aussi le faire avec un tableau.

0

Merci Pierrot , 

La question est : est ce que je dois modifier la file déjà existante : implementer la file prioritaire comme une sous classe de "Queue" , ou le faire comme une autre classe friend de "QueueBase" , comment faire la liaison entre elles 

Ou, créer une nouvelle file et ne pas utiliser  l'existante .

0
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
Modifié le 30 avril 2024 à 14:51

Bonjour,

Dans NDNSim, il ne faut pas toucher aux fichiers existants, sinon ton code ne sera pas réutilisable. Tu dois donc créer ton propre fichier source, et idéalement le placer dans le même dossier que la file existante pour respecter l'organisation du projet. Dans ton cas, tu aurais à créer :

  • src/network/utils/priority_queue.h
  • src/network/utils/priority_queue.cc

Une fois que tu as commencé à implémenter tes fichiers, il faut ensuite adapter les fichier(s) wscript concerné(s) dans le(s) dossier(s) concerné(s). Ces scripts python sont par waf pour compiler ns-3. Il faut y référencer le(s) fichier(s) que tu as ajouté, sans quoi ils seront ignorés.

  • Ajoute le(s) fichier(s) .cc dans la liste module_sources déjà existante de la fonction build
  • Ajoute le(s) fichier(s) .h dans la liste module_headers déjà existante de la fonction build

Voici un exemple concret de modification d'un wscript pour ajouter un projet tiers dans ns3 et ns3-dce (je suppose que ça doit être plus ou moins la même chose avec ndnsim, mais prends le temps de te renseigner). Tu peux aussi regarder un tutoriel, par exemple celui-ci.

Recompile ns3 en lançant depuis le dossier de sources ns3 la commande :

./waf

Note enfin qu'il existe en C++ une classe permettant de définir une file avec priorité (voir ce lien), peut-être que cela t'aidera à développer une file conforme à ce qu'attend ns-3.

Bonne chance

0
wella_salwa Messages postés 18 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 2 mai 2024
30 avril 2024 à 17:09

Merci mamiemando pour votre réponse , 

j'ai toujours le netdevice

https://ndnsim.net/current/doxygen/ndn-net-device-transport_8cpp_source.html

qui utilise l'ancien queue.

est ce que ma nouvelle file d'attente doit être de même une classe de QueueBase comme la file Queue

0
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
4 mai 2024 à 19:27

Oui ta nouvelle queue doit hériter de QueueBase (ou même de Queue si tu veux en réutiliser certains aspects, car qui peut le plus peut le moins) afin de se conformer à ce qu'attend ns-3. Voir le diagramme de classe.

Ensuite à toi de surcharger les méthodes adéquates pour avoir le bon comportement. Veille à faire un héritage public, comme c'est fait ici.

Exemple :

class PriorityQueue : public Queue
{
    // ...
};

Bonne chance

0