manages a template resource that may need to be recompiled if the file is updated in the filesystem; used by WebUtil::TemplateFileManager
More...
|
| | constructor (string resource_path, int parse_opts=DefaultProgramOptions, *code pgm_setup) |
| | creates the object based on the pathname and Program options
|
| |
|
| constructor (int po=DefaultProgramOptions) |
| | sets up the object
|
| |
|
Program | getProgram () |
| | returns the contained Program object
|
| |
|
| hash< HttpResponseInfo > | renderImpl (date new_mtime, hash< auto > ctx, int http_code=200, *hash< auto > hdr) |
| | explicitly renders the given template with the given argument
|
| |
|
RWLock | rwl () |
| | to ensure atomicity regarding contention between setup/recompiles and rendering requests
|
| |
|
|
string | ct |
| | the content type of the rendered template
|
| |
|
*date | mtime |
| | file's modification time
|
| |
|
string | path |
| | the path to the template
|
| |
|
int | po |
| | parse options used on the program
|
| |
|
*code | psetup |
| | code to perform Program initialization when creating a new Program object (inport API, etc)
|
| |
|
const | TemplateFunc = "t" |
| | the name of the template function
|
| |
|
Program | p |
| | Holds the template generation function.
|
| |
|
| static string | add (Qore::Program p, string fn, string name, string src) |
| | adds a template function to a template Program object
|
| |
|
static string | getContentType (string name) |
| | returns the content type from the file name, ignores any leading "q" in the extensions, assuming a template
|
| |
|
const | DefaultProgramOptions = PO_REQUIRE_OUR|PO_NO_TOP_LEVEL_STATEMENTS|PO_NO_INHERIT_USER_FUNC_VARIANTS|PO_NO_INHERIT_GLOBAL_VARS|PO_NO_USER_CLASSES|PO_NO_TERMINAL_IO |
| | default parse options for template Programs
|
| |
|
static bool | doBlock (string end, reference< string > src, string type, reference< int > i, reference< list< hash > > l) |
| | a helper method used in parsing
|
| |
|
static string | getCode (bool bare_refs, string fmt,...) |
| | a helper method that strips dollar signs from code when PO_ALLOW_BARE_REFS is set in the template program
|
| |
manages a template resource that may need to be recompiled if the file is updated in the filesystem; used by WebUtil::TemplateFileManager
◆ constructor()
| WebUtil::FileTemplate::constructor |
( |
string | resource_path, |
|
|
int | parse_opts = DefaultProgramOptions, |
|
|
*code | pgm_setup ) |
creates the object based on the pathname and Program options
- Parameters
-
| resource_path | the path to the resource |
| parse_opts | the Program parse options for the template file programs |
| pgm_setup | an optional closure or call reference taking a single Program argument to be called when initializing template programs to set up a custom template API, etc |
◆ renderImpl()
| hash< HttpResponseInfo > WebUtil::FileTemplate::renderImpl |
( |
date | new_mtime, |
|
|
hash< auto > | ctx, |
|
|
int | http_code = 200, |
|
|
*hash< auto > | hdr ) |
|
protected |
explicitly renders the given template with the given argument
- Example:
hash<HttpResponseInfo> h = qft.render(ctx);
- Parameters
-
| new_mtime | the modified date/time of the file, used to determine if the template should be recomiled or not |
| ctx | the context argument for the template |
| http_code | the HTTP response code for the response, if not present then 200 "OK" is assumed |
| hdr | any optional headers for the response (the "Content-Type" header is set from the template's "Content-Type" value automatically) |
- Returns
- a hash with the following keys:
code: the HTTP response code corresponding to the code argument
body: the rendered template
hdr: a hash of headers corresponding to the hdr argument plus the "Content-Type" key set from the template's "Content-Type" value)