ServidorTFG/session_manager.h
2020-06-02 15:22:47 +02:00

90 lines
2.1 KiB
C++

#ifndef LAUNCHER_H
#define LAUNCHER_H
#include <iostream>
#include <data_acces.h>
class session_manager
{
public:
/**
* @brief session_manager::session_manager
* Object that guide a session
* @param fd Client flie descriptor
*/
session_manager(int fd);
/**
* @brief start_dialog
* Start the default state, ready to listen petitions
*/
void start_dialog();
/**
* @brief generate_package
* Generate a package
* @return Positive if the package has been installed well
*/
int generate_package();
/**
* @brief remove
* Remove a package
* @return Positive if the package has been removed well
*/
int remove();
/**
* @brief send_information
* Send the actual packages generated whit these aplication
*/
void send_information();
/**
* @brief send_user_info
* Send the list of generated users and the privileges
*/
void send_user_info();
/**
* @brief validate_pass
* Recive an user and password and check if these mach with the users database
* @return If the pass mach with the user, return true, if not, return false
*/
bool validate_pass();
/**
* @brief create_user
* Recive an user and password to create a user
*/
void create_user();
/**
* @brief remove_user
* Recive a user to remove it
*/
void remove_user();
private:
/**
* @brief appli_command
* Execute emerge with the passed parameter
* @param comand Parameter that recive emerge
* @param n_package Name ot the package
* @return The name of the package or err if he process fail
*/
std::string appli_command(char comand[], char* n_package);
/**
* @brief read_data
* Recive data from a socket
* @param input Buffer to deposite the info
* @param size Max size of a info readed
* @return Number of bytes readed
*/
virtual int read_data(char* input, int size);
/**
* @brief write_data
* Write data using a socket
* @param output
* String to have te info to send
* @return Number of bytes writed
*/
virtual int write_data(std::string output);
int fd;
data_acces* data;
std::string user;
bool admin;
std::string env;
};
#endif // LAUNCHER_H