La classe TcpServer est la classe correspondant au serveur. Plus de détails...
Fonctions membres publiques | |
void | initialize () |
Initialise le serveur. | |
void | handleLogout (Customer *) |
Gère la déconnexion du client customer. | |
void | handleMessage (QDataStream *, Customer *) |
Gestionnaire global des paquets. | |
void | unhandled (QDataStream *, Customer *) |
Gestionnaire des paquets inutilisés. | |
void | handlePing (QDataStream *, Customer *) |
Gestionnaire des paquets correspondant aux pings. | |
void | handleLogin (QDataStream *, Customer *) |
Gestionnaire des paquets correspondant aux tentatives de login. | |
void | handleMedicineModel (QDataStream *, Customer *) |
Gestionnaire des paquets correspondant aux demandes de la liste des médicaments disponibles. | |
void | handlePatientsModel (QDataStream *, Customer *) |
Gestionnaire des paquets demandant le modèle contenant les patients. | |
void | handleBodyPartsModel (QDataStream *, Customer *) |
Gestionnaire des paquets demandant le modèle contenant les noms et ids des différentes parties du corps humain. | |
void | handlePatientQuery (QDataStream *, Customer *) |
Gestionnaire des paquets demandant les informations d'un patient. | |
void | handleNewPatient (QDataStream *, Customer *) |
Gestionnaire des paquets demandant l'ajout d'un patient. | |
void | handleModifyPatient (QDataStream *, Customer *) |
Gestionnaire des paquets demandant la modification d'un patient. | |
void | handleNewDiagnostic (QDataStream *, Customer *) |
Gestionnaire des paquets demandant l'ajout d'un nouveau diagnostic au dossier d'un patient. | |
void | handleNewSymptom (QDataStream *, Customer *) |
Gestionnaire des paquets demandant l'ajout d'un nouveau symptôme au dossier d'un patient. | |
void | handleRemovePrescription (QDataStream *, Customer *) |
Gestionnaire des paquets demandant la suppression d'une prescription du dossier d'un patient. | |
void | handleModifyPrescription (QDataStream *, Customer *) |
Gestionnaire des paquets demandant la modification d'une prescription du dossier d'un patient. | |
void | handleNewPrescription (QDataStream *, Customer *) |
Gestionnaire des paquets demandant la modification d'une prescription du dossier d'un patient. | |
void | handleEnterChat (QDataStream *, Customer *) |
Gestionnaire des paquets notifiant d'une entrée dans le salon. | |
void | handleLeaveChat (QDataStream *, Customer *) |
Gestionnaire des paquets notifiant d'une sortie du salon. | |
void | handleChatMessage (QDataStream *, Customer *) |
Gestionnaire des paquets notifiant d'un message dans le salon. | |
void | handleChatUsersRequest (QDataStream *, Customer *) |
Gestionnaire des paquets demandant la liste des utilisateurs connectés au salon. | |
void | handleStartECG (QDataStream *, Customer *) |
Gestionnaire des paquets demandant le lancement de l'ECG. | |
void | handleStopECG (QDataStream *, Customer *) |
Gestionnaire des paquets demandant l'arrêt de l'ECG. | |
void | handleAnalysisModel (QDataStream *, Customer *) |
Gestionnaire des paquets demandant le modèle des analyses (scans et radios) d'un patient. | |
void | handleScanRequest (QDataStream *, Customer *) |
Gestionnaire des paquets demandant l'image d'une partie d'un scan. | |
void | handleRadioRequest (QDataStream *, Customer *) |
Gestionnaire des paquets demandant l'image d'une partie d'une radio. | |
Connecteurs privés | |
void | handleConnection () |
Gère les nouvelles connexions. | |
Fonctions membres privées | |
QString | prepareJSON (const QString &) |
Retourne une chaine parsée. | |
QString | preparePatient (const int &) |
Retourne la chaine JSON des données du dossier du patient id. | |
void | fillStrings (QList< QString > list,...) |
Remplit des QString avec les données de list. | |
Attributs privés | |
QList< Customer * > | _customers |
La classe TcpServer est la classe correspondant au serveur.
Dérivée de QTcpServer, elle permet de gérer l'intégralité des clients connectés à l'application serveur. Elle écoute le port 45354 et gère les paquets, identifiables par leur opcode, envoyés par les clients.
void TcpServer::handleAnalysisModel | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant le modèle des analyses (scans et radios) d'un patient.
Envoit une chaine de caractères au format JSON contenant les données des analyses au client.
void TcpServer::handleBodyPartsModel | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant le modèle contenant les noms et ids des différentes parties du corps humain.
Envoit une chaine de caractères au format JSON contenant les données des parties du corps humain.
void TcpServer::handleChatMessage | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets notifiant d'un message dans le salon.
Envoit à tous les clients de la liste des clients présents dans le salon une notification de nouveau message.
void TcpServer::handleChatUsersRequest | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant la liste des utilisateurs connectés au salon.
Envoit au client la liste des clients connectés au salon.
void TcpServer::handleConnection | ( | ) | [private, slot] |
Gère les nouvelles connexions.
Lorsqu'un client se connecte au serveur, il est ajouté à la liste des clients connectés au serveur pour une utilisation ultérieure.
void TcpServer::handleEnterChat | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets notifiant d'une entrée dans le salon.
Ajoute le client à la liste des clients présents dans le salon puis envoit à tous les clients connectés de la liste une notification de l'entrée.
void TcpServer::handleLeaveChat | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets notifiant d'une sortie du salon.
Retire le client de la liste des clients présents dans le salon puis envoit à tous les clients connectés de la liste une notification de la sortie.
void TcpServer::handleLogin | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets correspondant aux tentatives de login.
Envoit true si les identifiants passés sont corrects, sinon false.
void TcpServer::handleLogout | ( | Customer * | customer | ) |
Gère la déconnexion du client customer.
Retire le client de la liste des clients connectés au serveur puis le supprime. Dans le cas où le client serait dans la liste des clients en attente des informations en provenance du simulateur, celui-ci est retiré de la liste. Si le client était présent dans le chat, notifie les autres clients connectés de sa sortie du salon.
void TcpServer::handleMedicineModel | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets correspondant aux demandes de la liste des médicaments disponibles.
Envoit une chaine de caractères au format JSON contenant les médicaments.
void TcpServer::handleMessage | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire global des paquets.
Cette fonction est appelée depuis les clients une fois qu'un paquet a été entièrement reçu afin de le rediriger vers le gestionnaire de paquets associé à l'opcode qu'il possède.
Dans un premier temps, on récupère l'opcode, puis on vérifie qu'elle est bien valide. Enfin, on appelle le gestionnaire associé.
void TcpServer::handleModifyPatient | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant la modification d'un patient.
Modifie les données du patient puis envoit à tous les clients connectés une chaine de caractères au format JSON contenant les informations concernant le dossier modifié du patient.
void TcpServer::handleModifyPrescription | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant la modification d'une prescription du dossier d'un patient.
Modifie la prescription puis envoit à tous les clients connectés une notification comme quoi les prescriptions du patient ont été modifiées.
void TcpServer::handleNewDiagnostic | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant l'ajout d'un nouveau diagnostic au dossier d'un patient.
Ajoute le nouveau diagnostic puis envoit à tous les clients connectés une chaine de caractères au format JSON contenant les informations du nouveau diagnostic.
void TcpServer::handleNewPatient | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant l'ajout d'un patient.
Ajoute le nouveau patient puis envoit à tous les clients connectés une chaine de caractères au format JSON contenant les informations concernant le nouveau patient.
void TcpServer::handleNewPrescription | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant la modification d'une prescription du dossier d'un patient.
Modifie la prescription puis envoit à tous les clients connectés une notification comme quoi les prescriptions du patient ont été modifiées.
void TcpServer::handleNewSymptom | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant l'ajout d'un nouveau symptôme au dossier d'un patient.
Ajoute le nouveau symptôme puis envoit à tous les clients connectés une chaine de caractères au format JSON contenant les informations du nouveau symptôme.
void TcpServer::handlePatientQuery | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant les informations d'un patient.
Envoit une chaine de caractères au format JSON contenant les informations concernant le patient.
void TcpServer::handlePatientsModel | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant le modèle contenant les patients.
Envoit une chaine de caractères au format JSON contenant les patients.
void TcpServer::handlePing | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets correspondant aux pings.
Envoit un pong au client ayant envoyé un ping.
void TcpServer::handleRadioRequest | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant l'image d'une partie d'une radio.
Envoit l'image de la partie de la radio au client.
void TcpServer::handleRemovePrescription | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant la suppression d'une prescription du dossier d'un patient.
Supprime la prescription puis envoit à tous les clients connectés une notification comme quoi les prescriptions du patient ont été modifiées.
void TcpServer::handleScanRequest | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant l'image d'une partie d'un scan.
Envoit l'image de la partie du scan au client.
void TcpServer::handleStartECG | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant le lancement de l'ECG.
Ajoute le client à la liste des clients en attente des données de l'ECG, fournies par le simulateur de données.
void TcpServer::handleStopECG | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets demandant l'arrêt de l'ECG.
Retire le client de la liste des clients en attente des données de l'ECG, fournies par le simulateur de données.
QString TcpServer::prepareJSON | ( | const QString & | str | ) | [private] |
Retourne une chaine parsée.
L'effet est équivalent à celui de la fonction addslashes de PHP, bien que seuls les antislashs et les guillemets soient traités.
void TcpServer::unhandled | ( | QDataStream * | data, | |
Customer * | customer | |||
) |
Gestionnaire des paquets inutilisés.
Ne fait rien.
QList<Customer*> TcpServer::_customers [private] |
La liste des clients connectés au serveur.