aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net/localwebserver.h
diff options
context:
space:
mode:
authorAlexander Tkachev2016-07-06 16:48:56 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit48e3fff6bcea94da5bd46ee2def17eb6bdca716c (patch)
tree959135f29269c36b3b4c413716e9ab6ebcedc659 /backends/networking/sdl_net/localwebserver.h
parent627bda9d82c178641e5b5253379c21ce556eb3c2 (diff)
downloadscummvm-rg350-48e3fff6bcea94da5bd46ee2def17eb6bdca716c.tar.gz
scummvm-rg350-48e3fff6bcea94da5bd46ee2def17eb6bdca716c.tar.bz2
scummvm-rg350-48e3fff6bcea94da5bd46ee2def17eb6bdca716c.zip
CLOUD: Refactor LocalWebserver
Its handlers are now more compact. This commit moves Handler classes in handlers\ directory. ResourceHandler ignores "hidden" files in the archive, and these are used as markup templates in IndexPageHandler and FilesPageHandler.
Diffstat (limited to 'backends/networking/sdl_net/localwebserver.h')
-rw-r--r--backends/networking/sdl_net/localwebserver.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/backends/networking/sdl_net/localwebserver.h b/backends/networking/sdl_net/localwebserver.h
index f73d1b2850..1d397e6dcc 100644
--- a/backends/networking/sdl_net/localwebserver.h
+++ b/backends/networking/sdl_net/localwebserver.h
@@ -24,8 +24,10 @@
#define BACKENDS_NETWORKING_SDL_NET_LOCALWEBSERVER_H
#include "backends/networking/sdl_net/client.h"
-#include "backends/networking/sdl_net/indexpagehandler.h"
-#include "common/callback.h"
+#include "backends/networking/sdl_net/handlers/basehandler.h"
+#include "backends/networking/sdl_net/handlers/filespagehandler.h"
+#include "backends/networking/sdl_net/handlers/indexpagehandler.h"
+#include "backends/networking/sdl_net/handlers/resourcehandler.h"
#include "common/hash-str.h"
#include "common/mutex.h"
#include "common/singleton.h"
@@ -46,8 +48,6 @@ class LocalWebserver : public Common::Singleton<LocalWebserver> {
static const uint32 SERVER_PORT = 12345;
static const uint32 MAX_CONNECTIONS = 10;
- typedef Common::BaseCallback<Client &> *ClientHandler;
-
friend void localWebserverTimer(void *); //calls handle()
SDLNet_SocketSet _set;
@@ -55,8 +55,11 @@ class LocalWebserver : public Common::Singleton<LocalWebserver> {
Client _client[MAX_CONNECTIONS];
int _clients;
bool _timerStarted, _stopOnIdle;
- Common::HashMap<Common::String, ClientHandler> _pathHandlers;
+ Common::HashMap<Common::String, ClientHandlerCallback> _pathHandlers;
+ ClientHandlerCallback _defaultHandler;
IndexPageHandler _indexPageHandler;
+ FilesPageHandler _filesPageHandler;
+ ResourceHandler _resourceHandler;
uint32 _idlingFrames;
Common::Mutex _handleMutex;
Common::String _address;
@@ -74,7 +77,7 @@ public:
void start();
void stop();
void stopOnIdle();
- void addPathHandler(Common::String path, ClientHandler handler);
+ void addPathHandler(Common::String path, ClientHandlerCallback handler);
void removePathHandler(Common::String path);
Common::String getAddress();