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);
283 string add(
string name,
string src, *
string ct);
373 "IndexFile":
"index.html",
374 "IndexTemplate":
"index.qhtml",
375 "TemplateExtensions": (
384 " $d.chdir($ctx.path);"
385 " string $title = sprintf(\"Index of /%s\", $ctx.resource_path);"
388 " <meta charset=\"utf-8\" />"
389 " <title>{{ $title }}</title>"
393 " <h1>{{ $title }}</h1>"
395 " <div class=\"container\">"
399 " <th width=\"40\">Type</th>"
400 " <th width=\"80\">Size</th>"
402 " {% if ($ctx.parent_url) { %}"
404 " <td colspan=\"2\"><a href=\"{{ $ctx.parent_url }}\">Parent Directory</a></td>"
407 " {% foreach string $dir in (sort($d.listDirs())) { %}"
408 " {% if ($dir[0]!=\".\") {"
409 " string $path = replace($ctx.path, $ctx.file_root, \"\");"
411 " <tr><td><a href=\"{{ $ctx.url_root + $path + \"/\" + $dir }}\">{{ $dir }}</a></td><td width=\"40\">Directory</td></tr>"
414 " {% foreach string $file in (sort($d.listFiles())) { %}"
415 " {% if ($file[0]!=\".\") {"
416 " string $path = replace($ctx.path, $ctx.file_root, \"\");"
418 " <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>"
447 private string getDirlistingTemplate();
513 private *
hash tryServeRequest(
hash cx);
const Dirlisting
dirlisting template
Definition: WebUtil.qm.dox.h:381
logInfo(string fmt)
default implementation is empty; this method is called with informational log messages; reimplement i...
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:362
*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:191
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
private 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...
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
private hash serverError(hash cx, hash ex)
this method returns a 500 "Internal Server Error" error code when an exception occurs ...
int po
parse options used on the program
Definition: WebUtil.qm.dox.h:122
private *hash handleRequestImpl(reference cx, hash hdr, *data body)
this method is called by this class's handleRequest() before trying to service the request automatica...
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:183
*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:371
static string add(Program p, string fn, string name, string src)
adds a template function to a template Program object
private 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...
*string default_target
the default target if a URL cannot be satisfied
Definition: WebUtil.qm.dox.h:354
const PO_NO_INHERIT_GLOBAL_VARS
constructor(int po=DefaultProgramOptions)
sets up the object
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:340
*code psetup
code to perform Program initialization when creating a new Program object (inport API...
Definition: WebUtil.qm.dox.h:197
hash template_extensions
file extensions handled as templates
Definition: WebUtil.qm.dox.h:351
int po
parse options used on the program
Definition: WebUtil.qm.dox.h:194
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:348
A container for holding static text templates (ie that do not change once created in the template man...
Definition: WebUtil.qm.dox.h:241
constructor(int po=DefaultProgramOptions)
sets up the object
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 ...
logError(string fmt)
default implementation is empty; this method is called with error log messages; reimplement in subcla...
*hash renderDirectory(hash cx, string path)
this method is called when a directory should be rendered
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.
StaticTemplateManager stm()
static templates
const DirSep
directory separator character
Definition: WebUtil.qm.dox.h:368
string file_root
root directory for serving files
Definition: WebUtil.qm.dox.h:345
const Unix
flag for UNIX operating systems
Definition: WebUtil.qm.dox.h:365
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
const PO_NO_TOP_LEVEL_STATEMENTS
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
logDebug(string fmt)
default implementation is empty; this method is called with debug log messages; reimplement in subcla...
hash th
Maps template names to function names.
Definition: WebUtil.qm.dox.h:246
RWLock rwl()
read-write lock for managing template access
constructor(string file_root, string url_root="/", *hash opt)
create the object optionally with the given AbstractAuthenticator