.. _program_listing_file_gui_API_API.hpp: Program Listing for File API.hpp ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``gui/API/API.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include "API/Incantation/Incantation.hpp" #include "API/TileMap/Tilemap.hpp" #include "API/Trantor/Trantor.hpp" #include class API { private: std::array _pipeFdNetwork; std::array _pipeFdEvents; std::array _pollOutFd; std::array _pollEventOutFd; std::mutex _commandListLocker; Tilemap _tilemap; std::mutex _tilemapLocker; std::vector _allTeamName; std::mutex _allTeamNameLocker; std::map> _teams; std::mutex _teamsLocker; std::vector _incantationList; std::mutex _incantationListLocker; std::map> _eggList; std::mutex _eggListLocker; short _timeUnit = 0; std::mutex _timeUnitLocker; bool _isGameRunning = false; std::mutex _isGameRunningLocker; std::string _winner; std::mutex _winnerLocker; std::vector _serverMessage; std::mutex _serverMessageLocker; public: API(); ~API() = default; void WriteMessage(const std::string &msg); [[nodiscard]] int GetInFd() const { return _pipeFdNetwork[0]; } [[nodiscard]] int GetEventsInFd() const { return _pipeFdEvents[0]; } [[nodiscard]] std::map> GetTeams() { std::lock_guard lock(_teamsLocker); return _teams; } Tilemap GetTilemap(); std::map> GetEggList() { std::lock_guard lock(_eggListLocker); return _eggList; } std::vector GetTeamsName(); void AddEgg(int id, int x, int y); void DeleteEgg(int id); void ClearCommand(); // FROM GIU void AskMapSize(); void AskAllTileContent(); void AskTileContent(int x, int y); void AskAllTeamName(); void AskAllPlayerPos(); void AskPlayerPos(int id); void AskAllPlayerLevel(); void AskPlayerLevel(int id); void AskAllPlayerInventory(); void AskPlayerInventory(int id); // FROM SERVER void ParseManageCommand(std::string &command); void AddPlayer( int id, int x, int y, int orientation, int level, std::string teamsName); void HandleMSZ(std::stringstream &ss); void HandleBCT(std::stringstream &ss); static void HandleMCT(); void HandleTNA(std::stringstream &ss); void HandlePNW(std::stringstream &ss); void HandlePPO(std::stringstream &ss); void HandlePLV(std::stringstream &ss); void HandlePIN(std::stringstream &ss); void HandlePEX(std::stringstream &ss); void HandlePBC(std::stringstream &ss); void HandlePIC(std::stringstream &ss); void HandlePIE(std::stringstream &ss); void HandlePFK(std::stringstream &ss); void HandlePDR(std::stringstream &ss); void HandlePGT(std::stringstream &ss); void HandlePDI(std::stringstream &ss); void HandleENW(std::stringstream &ss); void HandleEBO(std::stringstream &ss); void HandleEDI(std::stringstream &ss); void HandleSGT(std::stringstream &ss); void HandleSST(std::stringstream &ss); void HandleSEG(std::stringstream &ss); void HandleSMG(std::stringstream &ss); static void HandleSUC(); static void HandleSBP(); };