diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-02-20 21:13:02 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-02-20 21:13:02 (GMT) |
commit | a56f28b0db56ff3e39f0b50e4c55c52b7aeec696 (patch) | |
tree | 41cf67ea5cee9593e86272ab55367653fbd1c2f3 /src/uscxml/plugins/invoker/http/HTTPServletInvoker.h | |
parent | 7c779099b3acd1fa969dde718299484ebe0d2775 (diff) | |
download | uscxml-a56f28b0db56ff3e39f0b50e4c55c52b7aeec696.zip uscxml-a56f28b0db56ff3e39f0b50e4c55c52b7aeec696.tar.gz uscxml-a56f28b0db56ff3e39f0b50e4c55c52b7aeec696.tar.bz2 |
See detailled log
- Builds on windows again
- All HTTP requests are no passed into interpreter
- New response element to reply with data
- Moved basichttp URL
- New HTTP servlet invoker to register additional URLs
- More bugfixes than I care to mention
Diffstat (limited to 'src/uscxml/plugins/invoker/http/HTTPServletInvoker.h')
-rw-r--r-- | src/uscxml/plugins/invoker/http/HTTPServletInvoker.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/uscxml/plugins/invoker/http/HTTPServletInvoker.h b/src/uscxml/plugins/invoker/http/HTTPServletInvoker.h new file mode 100644 index 0000000..1d667de --- /dev/null +++ b/src/uscxml/plugins/invoker/http/HTTPServletInvoker.h @@ -0,0 +1,55 @@ +#ifndef HTTPSERVERINVOKER_H_OAAWX8NF +#define HTTPSERVERINVOKER_H_OAAWX8NF + +#include <uscxml/Interpreter.h> +#include <uscxml/server/HTTPServer.h> + +#ifdef BUILD_AS_PLUGINS +#include "uscxml/plugins/Plugins.h" +#endif + +namespace uscxml { + +class HTTPServletInvoker : public InvokerImpl, public HTTPServlet { +public: + HTTPServletInvoker(); + HTTPServletInvoker(Interpreter* interpreter); + virtual ~HTTPServletInvoker(); + virtual boost::shared_ptr<IOProcessorImpl> create(Interpreter* interpreter); + + virtual std::set<std::string> getNames() { + std::set<std::string> names; + names.insert("httpserver"); + names.insert("http://uscxml.tk.informatik.tu-darmstadt.de/#httpserver"); + return names; + } + + virtual Data getDataModelVariables(); + virtual void send(const SendRequest& req); + virtual void cancel(const std::string sendId); + virtual void invoke(const InvokeRequest& req); + + // HTTPServlet + virtual void httpRecvRequest(const HTTPServer::Request& req); + virtual std::string getPath(); + virtual void setURL(const std::string& url) { _url = url; } + + tthread::recursive_mutex& getMutex() { return _mutex; } + std::map<std::string, HTTPServer::Request>& getRequests() { return _requests; } + +protected: + tthread::recursive_mutex _mutex; + std::map<std::string, HTTPServer::Request> _requests; + std::string _path; + std::string _callback; + std::string _url; + bool _isInterpreterGlobal; +}; + +#ifdef BUILD_AS_PLUGINS +PLUMA_INHERIT_PROVIDER(HTTPServletInvoker, Invoker); +#endif + +} + +#endif /* end of include guard: HTTPSERVERINVOKER_H_OAAWX8NF */ |