summaryrefslogtreecommitdiffstats
path: root/source/cWebAdmin.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/cWebAdmin.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/source/cWebAdmin.h b/source/cWebAdmin.h
new file mode 100644
index 000000000..e58eab24e
--- /dev/null
+++ b/source/cWebAdmin.h
@@ -0,0 +1,60 @@
+#pragma once
+
+#include <list>
+#include "../WebServer/WebServer.h"
+#include "cSocket.h"
+
+class cStringMap;
+//tolua_begin
+struct HTTPRequest
+{
+ std::string Method;
+ std::string Path;
+ cStringMap* Params;
+ std::string Username;
+};
+//tolua_end
+
+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);
+
+ void RemovePlugin( lua_State* L );
+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;
+}; \ No newline at end of file