|
|
| version 1.20, 2001/03/22 11:19:10 | version 1.120, 2024/11/04 03:53:25 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: global decls. | Parser: global decls. |
| Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) | Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com) |
| Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru> | |
| Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf) | |
| $Id$ | |
| */ | */ |
| #ifndef PA_GLOBALS_H | #ifndef PA_GLOBALS_H |
| #define PA_GLOBALS_H | #define PA_GLOBALS_H |
| #include "pa_string.h" | #define IDENT_PA_GLOBALS_H "$Id$" |
| #include "pa_hash.h" | |
| //@{ | #ifdef XML |
| /// constant string. class name, predefined method & co | # include "libxml/tree.h" |
| #define AUTO_FILE_NAME "/auto.p" | #endif |
| #define CONTENT_TYPE_NAME "content-type" | |
| #define BODY_NAME "body" | |
| #define VALUE_NAME "value" | |
| #define EXPIRES_NAME "expires" | |
| #define PATH_NAME "path" | |
| #define NAME_NAME "name" | |
| #define SIZE_NAME "size" | |
| #define TEXT_NAME "text" | |
| #define EXCEPTION_METHOD_NAME "exception" | |
| #define UNNAMED_NAME "unnamed" | |
| #define MAIN_METHOD_NAME "main" | |
| #define AUTO_METHOD_NAME "auto" | |
| #define ROOT_CLASS_NAME "ROOT" | |
| #define MAIN_CLASS_NAME "MAIN" | |
| #define TABLE_CLASS_NAME "table" | |
| #define ENV_CLASS_NAME "env" | |
| #define FORM_CLASS_NAME "form" | |
| #define REQUEST_CLASS_NAME "request" | |
| #define RESPONSE_CLASS_NAME "response" | |
| #define COOKIE_CLASS_NAME "cookie" | |
| #define LIMITS_NAME "limits" | |
| #define POST_MAX_SIZE_NAME "post_max_size" | |
| #define DEFAULTS_NAME "defaults" | |
| #define RESULT_VAR_NAME "result" | |
| //@} | |
| /// target-specific service functions | |
| struct Service_funcs { | |
| /// get env | |
| const char *(*get_env)(Pool& pool, const char *name); | |
| /// read POST request bytes | |
| uint (*read_post)(Pool& pool, char *buf, uint max_bytes); | |
| /// add response header attribute | |
| void (*add_header_attribute)(Pool& pool, const char *key, const char *value); | |
| /// add response header attribute | |
| void (*send_header)(Pool& pool); | |
| /// output body bytes | |
| void (*send_body)(Pool& pool, const char *buf, size_t size); | |
| }; | |
| class Request; | |
| /// core func | /// initialize global variables |
| void globals_init(Pool& pool); | void pa_globals_init(); |
| /// hex_value[c] = hex value of c | /// finalize global variables |
| extern short hex_value[0x100]; | void pa_globals_done(); |
| /// target-specific service functions | /// for lt_dlinit to be called once |
| extern Service_funcs service_funcs; | void pa_dlinit(); |
| //@{ | /// hex_value[c] = hex value of c |
| /// global string | extern short hex_value[0x100]; |
| extern String *content_type_name; | |
| extern String *body_name; | |
| extern String *value_name; | |
| extern String *expires_name; | |
| extern String *path_name; | |
| extern String *name_name; | |
| extern String *size_name; | |
| extern String *text_name; | |
| extern String *exception_method_name; | |
| extern String *unnamed_name; | |
| extern String *empty_string; | |
| extern String *auto_method_name; | |
| extern String *main_method_name; | |
| extern String *root_class_name; | |
| extern String *main_class_name; | |
| extern String *env_class_name; | |
| extern String *table_class_name; | |
| extern String *form_class_name; | |
| extern String *request_class_name; | |
| extern String *response_class_name; | |
| extern String *cookie_class_name; | |
| extern String *limits_name; | |
| extern String *post_max_size_name; | |
| extern String *defaults_name; | |
| extern String *result_var_name; | #ifdef XML |
| //@} | /// flag whether there were some xml generic errors on current thread |
| bool xmlHaveGenericErrors(); | |
| /// get xml generic error accumulated for current thread. WARNING: it is up to caller to free up | |
| const char* xmlGenericErrors(); | |
| #endif | |
| /// global hash | /// register request for local thread to retrive later with pa_get_request() |
| extern Hash *untaint_lang_name2enum; | void pa_register_thread_request(Request&); |
| /// retrives request set by pa_set_request function, useful in contextless places [slow] | |
| Request& pa_thread_request(); | |
| #endif | #endif |