Qore xml Module  1.6.0

WebDavHandler Module Introduction

This module provides a WebDavHandler server API.

Classes provided by this module:

  • AbstractWebDavHandler
  • AbstractWebDavPropertyHandler
  • DummyWebDavHandler
  • FsWebDavHandler
  • InMemoryWebDavPropertyHandler
  • WebDavHandlerProxy
Note
The FsWebDavHandler class does not support any WebDAV locking functionality.

WebDavHandler Example

%new-style
%require-types
%strict-args
%enable-all-warnings
%requires HttpServer
%requires FsUtil
%requires WebDavHandler
%exec-class Main
class Server inherits HttpServer {
private {
int verbose;
int port;
}
constructor(WebDavHandler::AbstractWebDavHandler handler, int verbose = 0) : HttpServer(\log(), \log(), True) {
self.verbose = verbose;
setHandler("webdavhandler", "/", NOTHING, handler);
setDefaultHandler("webdavhandler", handler);
map addHttpMethod($1), handler.getHttpMethods();
port = addListener(<HttpListenerOptionInfo>{"service": 0}).port;
}
# logger for http server
log(string str) {
if (verbose > 2) {
printf("%N: %s\n", now_us(), vsprintf(str, argv));
}
}
int getPort() {
return port;
}
}
class Main {
constructor() {
TmpDir tmp("tempdir-");
WebDavHandler::FsWebDavHandler handler(tmp.path);
Server srv(handler, m_options.verbose);
printf("Using tmp path: %s; listening on port %d\n", tmp.path, srv.getPort());
# wait forever - break with ctrl-C
while (True) {
sleep(99999999);
}
}
}

Release Notes

MapperUtil v1.0

  • initial release