summaryrefslogtreecommitdiff
path: root/i/simulotron/src/hub/hub.hh
diff options
context:
space:
mode:
authorhaller2006-01-21 21:10:23 +0000
committerhaller2006-01-21 21:10:23 +0000
commita8cd31b9681938b1cea0d02e884962fd8f114208 (patch)
treeeeccb77227e02d919f75d9a97ea3c7557d2be2fc /i/simulotron/src/hub/hub.hh
parent270ede560382bbce481b18895276d9802ae931ee (diff)
- ajout de quelques structures de données
- importation de la class nonCopyable et utilisation dans quelques classes - création d'une class exception simulotron_exception - ajout d'un paramètre "bloquant" pour recevoir une GS - modification de la valeur de retour des fonction servant à récupérer une GS - Mise en place de la poignée de main lors de la connection d'un module au hub - Ajout d'un message template pour les message vide - suppression des fonction (get|put)Char et getFD de la classe socket - modification de la fonction GSMessage::getString à deux arguments - ajout d'un test_hub - ajout de la class ComH (un peu comme ComC mais coté hub)
Diffstat (limited to 'i/simulotron/src/hub/hub.hh')
-rw-r--r--i/simulotron/src/hub/hub.hh11
1 files changed, 7 insertions, 4 deletions
diff --git a/i/simulotron/src/hub/hub.hh b/i/simulotron/src/hub/hub.hh
index e91f8d0..318877d 100644
--- a/i/simulotron/src/hub/hub.hh
+++ b/i/simulotron/src/hub/hub.hh
@@ -27,18 +27,19 @@
#include "hub/comh.hh"
#include "socket/socket_server.hh"
+#include "utils/non_copyable.hh"
#include <list>
class GSMessage;
-class Hub
+class Hub : public NonCopyable
{
private:
/// Horloge de simulation
long long int timeh_;
/// Listes des modules conectées au hub
- std::list<ComH> modules_;
+ std::list<ComH *> modules_;
/// Socket serveur pour la connection
SocketServer socket_;
/// Liste des modules attendu
@@ -47,7 +48,9 @@ class Hub
bool isRunning;
public:
/// Constructeur
- Hub(std::string & address, int port);
+ Hub(const std::string & address, int port);
+ /// Destructeur
+ ~Hub(void);
/// Lancement du hub
void start(void);
private:
@@ -60,7 +63,7 @@ class Hub
/// Traite les messages des modules
void processModules(void);
/// Traite les message d'un modules
- void processModule(const std::list<ComH>::iterator & it);
+ void processModule(const std::list<ComH *>::iterator & it);
/// Traite les wait des modules et fait avancer l'horloge si besoin
void processWaits(void);
/// Traite les règles d'arret du Hub