56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
|
|
#ifndef WEBLOGGER_H
|
||
|
|
#define WEBLOGGER_H
|
||
|
|
#include <iostream>
|
||
|
|
#include <string>
|
||
|
|
#include "httplib.h"
|
||
|
|
#include "Logger.h"
|
||
|
|
namespace loggerlib {
|
||
|
|
|
||
|
|
/*! @file WebLogger.h*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @class WebLogger
|
||
|
|
* @brief Classe d�crivant un logger concret permettant la communication d'un message par requ�te HTTP
|
||
|
|
*/
|
||
|
|
class WebLogger : public Logger {
|
||
|
|
private:
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief l'url � laquelle envoyer le message
|
||
|
|
*/
|
||
|
|
std::string m_url;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief le port associ� � l'URL
|
||
|
|
*/
|
||
|
|
unsigned int m_port;
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief l'instance du client HTTP utilis� (permet d'�viter la cr�ation d'un client � chaque notification)
|
||
|
|
*/
|
||
|
|
httplib::Client m_client;
|
||
|
|
public:
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Constructeur par defaut, inutilisable
|
||
|
|
*/
|
||
|
|
WebLogger() = delete;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief Constructeur de confort avec les informations de communication en param�tres
|
||
|
|
* @param url l'url � laquelle envoyer le message
|
||
|
|
* @param port le port associ� � l'url
|
||
|
|
*/
|
||
|
|
WebLogger(const std::string& url, unsigned int port, bool show, bool json, std::vector<unsigned int>& typesV);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief surchage de la fonction de notification
|
||
|
|
* Envoi du message : ici par requ�te HTTP
|
||
|
|
* @param message le message � envoyer
|
||
|
|
* @return NEANT
|
||
|
|
*/
|
||
|
|
void notify(const std::string& timestamp, ELOGGER_TYPES type, const std::string& message) override;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
#endif
|