You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
878 B

3 days ago
#ifndef HTTPMANAGER_H
#define HTTPMANAGER_H
#include "Controller/Controller.h"
#include "Singleton.h"
#include <QMap>
#include <QSharedPointer>
using ControllerFunc = std::function<Controller *()>;
class HttpManager : public Singleton<HttpManager>
{
private:
QMap<QString, QSharedPointer<Controller>> _controllers;
QMap<QString, ControllerFunc> _ctrlFuncs;
public:
HttpManager();
/**
* @brief getControllers
* @return
*/
QMap<QString, QSharedPointer<Controller>> getControllers();
/**
* @brief registerCtl
* @param path uri
* @param fun function
*/
void registerCtl(const QString &path, const ControllerFunc &fun);
private:
/**
* @brief _createController
*/
void _createController();
};
#endif // HTTPMANAGER_H