#pragma once #include "../WebServer/WebServer.h" #include "OSSupport/Socket.h" class cStringMap; struct HTTPFormData // tolua_export { // tolua_export std::string Name; // tolua_export std::string Value; // tolua_export std::string Type; // tolua_export };// tolua_export struct HTTPRequest // tolua_export { // tolua_export typedef std::map< std::string, std::string > StringStringMap; typedef std::map< std::string, HTTPFormData > FormDataMap; std::string Method; // tolua_export std::string Path; // tolua_export StringStringMap Params; // >> EXPORTED IN MANUALBINDINGS << StringStringMap PostParams; // >> EXPORTED IN MANUALBINDINGS << std::string Username; // tolua_export FormDataMap FormData; // >> EXPORTED IN MANUALBINDINGS << }; // tolua_export struct lua_State; class cEvent; class cIniFile; class cWebPlugin; class cWebAdmin { public: cWebAdmin( int a_Port = 8080 ); ~cWebAdmin(); bool Init( int a_Port ); void AddPlugin( cWebPlugin* a_Plugin ); void RemovePlugin( cWebPlugin* a_Plugin ); typedef std::list< cWebPlugin* > PluginList; PluginList GetPlugins() { return m_Plugins; } static void Request_Handler(webserver::http_request* r); int GetPort() { return m_Port; } private: #ifdef _WIN32 static DWORD WINAPI ListenThread(LPVOID lpParam); #else static void *ListenThread( void *lpParam ); #endif std::string GetTemplate(); int m_Port; bool m_bConnected; cSocket m_ListenSocket; cIniFile* m_IniFile; PluginList m_Plugins; cEvent* m_Event; webserver* m_WebServer; };