Theta/modules/server.h

39 lines
No EOL
1.7 KiB
C

//
// Készítette: Toldi Balázs Ádám
// Dátum: 2019. 11. 07.
//
#pragma once
#include "peer.h"
#include "webio.h"
#include "../lib/debugmalloc/debugmalloc.h"
/*!
* @brief Betölti és csatlakozik a `peer.txt` fájlban megadott peerekhez
* @param[in,out] list A peerek listájának mutatója
* @param[in] mynode Az az adatstruktúra amiben a saját adatainkat tároljuk
* @param[in,out] master Ebben tároljuk a peer sokcet-ét. select() függvényhez szükséges
*/
void peer_loadPeerList(PeerList *list,Node_data mynode,fd_set * master);
/*!
* @brief Generál vagy betölt egy azonosítót.
* Ha nem létezik a `seed.txt` fájl akkor generál egy 16 karakterből álló sztringet és elmenti az az újonnan létrehozott `seed.txt` fájéba.
* Ha létezik,akkor onnan betölti azt.
* @param[out] output Az azonosító
*/
void getSeed(char*output);
/*!
* @brief Létrehozza azt az adatstruktúra amiben a saját adatainkat tároljuk.
* @param[in] cfg A program konfigurációja
* @return A létrehozott Node_data struktúra
*/
Node_data construct_Mynodedata(Config cfg);
/*!
* @brief Ez a függvény a program "lelke".Ezt a program inicializálása után hívja meg.
* Ez kezeli a bejövő csomagokat,kapcsolatokat.
* @param[in] listening A socket amin a program fut.
* @param[in,out] master Ebben tároljuk a peer sokcet-ét. select() függvényhez szükséges
* @param[in] webIo A felhasználói felület adatstruktúrája
* @param[in] list A peerek listája
* @param[in] mynode Az az adatstruktúra amiben a saját adatainkat tároljuk
* @param[in,out] run Logikai érték pointere ami meghatározza hogy a fő ciklus fusson-e.
*/
void serverThread(SOCKET listening, fd_set* master, WebIO webIo, PeerList *list,Node_data mynode,bool* run);