103 static string add(Program
p,
string fn,
string name,
string src);
108 static bool doBlock(
string end, reference src,
string type, reference i, reference l);
288 string add(
string name,
string src, *
string ct);
377 "IndexFile":
"index.html",
378 "IndexTemplate":
"index.qhtml",
379 "TemplateExtensions": (
388 " $d.chdir($ctx.path);"
389 " string $title = sprintf(\"Index of /%s\", $ctx.resource_path);"
393 " <meta charset=\"utf-8\" />"
394 " <title>{{ $title }}</title>"
398 " <h1>{{ $title }}</h1>"
400 " <div class=\"container\">"
404 " <th width=\"40\">Type</th>"
405 " <th width=\"80\">Size</th>"
407 " {% if ($ctx.parent_url) { %}"
409 " <td colspan=\"2\"><a href=\"{{ $ctx.parent_url }}\">Parent Directory</a></td>"
412 " {% foreach string $dir in (sort($d.listDirs())) { %}"
413 " {% if ($dir[0]!=\".\") {"
414 " string $path = replace($ctx.path, $ctx.file_root, \"\");"
416 " <tr><td><a href=\"{{ $ctx.url_root + $path + \"/\" + $dir }}\">{{ $dir }}</a></td><td width=\"40\">Directory</td></tr>"
419 " {% foreach string $file in (sort($d.listFiles())) { %}"
420 " {% if ($file[0]!=\".\") {"
421 " string $path = replace($ctx.path, $ctx.file_root, \"\");"
423 " <tr><td><a href=\"{{ $ctx.url_root + $path + \"/\" + $file }}\">{{ $file }}</a></td><td width=\"40\">File</td><td align=\"right\">{{hstat($ctx.path + \"/\" + $file).size }}</td></tr>"
453 string getDirlistingTemplate();
Condition c()
Condition variable for waiting for a template to be.
const Dirlisting
dirlisting template
Definition: WebUtil.qm.dox.h:385
bool hasTemplate(string tname)
returns True if the given template exists, False if not
softint error_level
set for error info level
Definition: WebUtil.qm.dox.h:366
*date mtime
file's modification time
Definition: WebUtil.qm.dox.h:140
manages a template resource that may need to be recompiled if the file is updated in the filesystem; ...
Definition: WebUtil.qm.dox.h:117
hash th
hash for template storage
Definition: WebUtil.qm.dox.h:196
constructor(string path, int po=DefaultProgramOptions, *code psetup)
creates the object based on the pathname and Program options
*code psetup
code to perform Program initialization when creating a new Program object (inport API...
Definition: WebUtil.qm.dox.h:134
string ct
the content type of the rendered template
Definition: WebUtil.qm.dox.h:128
string add(string name, string src, *string ct)
adds a template to the object
int po
parse options used on the program
Definition: WebUtil.qm.dox.h:122
logError(string fmt)
default implementation is empty; this method is called with error log messages; reimplement in subcla...
this is the base class for all template Program container classes
Definition: WebUtil.qm.dox.h:57
this class manages templates based on files
Definition: WebUtil.qm.dox.h:188
*hash tryRender(string tname, hash ctx, int code=200, *hash hdr)
explicitly renders the given template with the given argument context hash if the template exists; if...
static string getContentType(string name)
returns the content type from the file name, ignores any leading "q" in the extensions, assuming a template
const TemplateFunc
the name of the template function
Definition: WebUtil.qm.dox.h:131
const Defaults
default configuration values
Definition: WebUtil.qm.dox.h:375
static string add(Program p, string fn, string name, string src)
adds a template function to a template Program object
*string default_target
the default target if a URL cannot be satisfied
Definition: WebUtil.qm.dox.h:359
hash unhandledRequest(hash cx, hash hdr, *data body)
this method returns a 404 "Not Found" error code to GET requests and a 501 "Not Implemented" error co...
const PO_NO_INHERIT_GLOBAL_VARS
constructor(int po=DefaultProgramOptions)
sets up the object
*hash handleRequestImpl(reference cx, hash hdr, *data body)
this method is called by this class's handleRequest() before trying to service the request automatica...
hash render(string tname, string path, date mtime, hash ctx, int code=200, *hash hdr)
explicitly renders the given template with the given path and context argument
RWLock rwl()
to ensure atomicity regarding contention between setup/recompiles and rendering requests ...
this class serves files from the file system based on a root location
Definition: WebUtil.qm.dox.h:345
*code psetup
code to perform Program initialization when creating a new Program object (inport API...
Definition: WebUtil.qm.dox.h:202
hash template_extensions
file extensions handled as templates
Definition: WebUtil.qm.dox.h:356
int po
parse options used on the program
Definition: WebUtil.qm.dox.h:199
list getTemplateList()
returns a list of template names, an empty list is returned if there are no templates ...
softlist indexes
indexes for directories; handled in order of appearance
Definition: WebUtil.qm.dox.h:353
A container for holding static text templates (ie that do not change once created in the template man...
Definition: WebUtil.qm.dox.h:246
constructor(int po=DefaultProgramOptions)
sets up the object
WebUtil::FileHandler HttpServer::AbstractUrlHandler, WebUtil::TemplateFileManager stm()
static templates
constructor(string file_root, string url_root="/", *hash opt)
create the object optionally with the given AbstractAuthenticator
const PO_NO_INHERIT_USER_FUNC_VARIANTS
*hash getTemplateHash()
returns a hash of template names, values are True or NOTHING if no templates are currently cached ...
string path
the path to the template
Definition: WebUtil.qm.dox.h:125
purge(string tname)
this method can be called when a resource is requested that no longer exists in case a template is st...
Sequence seq()
Sequence for template function names.
const DirSep
directory separator character
Definition: WebUtil.qm.dox.h:372
string file_root
root directory for serving files
Definition: WebUtil.qm.dox.h:350
const Unix
flag for UNIX operating systems
Definition: WebUtil.qm.dox.h:369
Program p
Holds the template generation function.
Definition: WebUtil.qm.dox.h:62
const DefaultProgramOptions
default parse options for template Programs
Definition: WebUtil.qm.dox.h:68
hash serverError(hash cx, hash ex)
this method returns a 500 "Internal Server Error" error code when an exception occurs ...
hash fileError(hash cx, hash sh)
this method returns a 400 "Bad Request" error code when a file should be served that's not a regula...
logDebug(string fmt)
default implementation is empty; this method is called with debug log messages; reimplement in subcla...
const PO_NO_TOP_LEVEL_STATEMENTS
*hash renderDirectory(hash cx, string path)
this method is called when a directory should be rendered
hash handleRequest(hash cx, hash hdr, *data body)
this method calls handleRequestImpl() to service the request, if handleRequestImpl() returns NOTHING...
constructor(int po=TextTemplateBase::DefaultProgramOptions, *code psetup)
creates the object with optional Program options
hash render(date mtime, hash ctx, int code=200, *hash hdr)
explicitly renders the given template with the given argument
static bool doBlock(string end, reference src, string type, reference i, reference l)
a helper method used in parsing
hash render(string tname, hash ctx, int code=200, *hash hdr)
explicitly renders the given template with the given argument
hash th
Maps template names to function names.
Definition: WebUtil.qm.dox.h:251
RWLock rwl()
read-write lock for managing template access
logInfo(string fmt)
default implementation is empty; this method is called with informational log messages; reimplement i...