--- parser3/src/include/pa_globals.h 2001/03/19 17:42:12 1.15 +++ parser3/src/include/pa_globals.h 2003/01/23 15:38:05 1.101.2.1 @@ -1,106 +1,174 @@ /** @file Parser: global decls. - Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - - Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: pa_globals.h,v 1.15 2001/03/19 17:42:12 paf Exp $ + Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_GLOBALS_H #define PA_GLOBALS_H -#include "pa_string.h" +static const char* IDENT_GLOBALS_H="$Date: 2003/01/23 15:38:05 $"; + +#include "pa_pool.h" #include "pa_hash.h" +#include "pa_string.h" + +class Dictionary; +class Charset; +class Table; //@{ /// constant string. class name, predefined method & co #define AUTO_FILE_NAME "auto.p" #define CONTENT_TYPE_NAME "content-type" +#define CHARSET_NAME "charset" #define BODY_NAME "body" +#define DOWNLOAD_NAME "download" #define VALUE_NAME "value" #define EXPIRES_NAME "expires" #define PATH_NAME "path" +#define NAME_NAME "name" +#define NONAME_DAT "noname.dat" +#define SIZE_NAME "size" +#define TEXT_NAME "text" -#define EXCEPTION_METHOD_NAME "exception" - -#define UNNAMED_NAME "unnamed" - -#define MAIN_METHOD_NAME "main" +#define CONF_METHOD_NAME "conf" #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 DEFAULTS_NAME "DEFAULTS" +#define CHARSETS_NAME "CHARSETS" +#define MIME_TYPES_NAME "MIME-TYPES" +#define ORIGINS_MODE_NAME "ORIGINS" #define RESULT_VAR_NAME "result" -//@} +#define MATCH_VAR_NAME "match" + +#define EXCEPTION_VAR_NAME "exception" +#define EXCEPTION_TYPE_PART_NAME "type" +#define EXCEPTION_SOURCE_PART_NAME "source" +#define EXCEPTION_COMMENT_PART_NAME "comment" +#define EXCEPTION_HANDLED_PART_NAME "handled" + + +#define DATE_CALENDAR_WEEKNO_NAME "week" +#define DATE_CALENDAR_WEEKYEAR_NAME "year" + +#define CONTENT_DISPOSITION_NAME "content-disposition" +#define CONTENT_DISPOSITION_VALUE "attachment" +#define CONTENT_DISPOSITION_FILENAME_NAME "filename" + +#define SWITCH_DATA_NAME "SWITCH-DATA" + +#define CACHE_DATA_NAME "CACHE-DATA" + +#define CLASS_PATH_NAME "CLASS_PATH" + +#define SQL_LIMIT_NAME "limit" +#define SQL_OFFSET_NAME "offset" +#define SQL_DEFAULT_NAME "default" +#define SQL_DISTINCT_NAME "distinct" + +#define CHARSET_UTF8_NAME "UTF-8" + +#define HASH_DEFAULT_ELEMENT_NAME "_default" -/// target-specific service functions -struct Service_funcs { - /// read POST request bytes - int (*read_post)(char *buf, int max_bytes); - /// output response header attribute - void (*output_header_attribute)(const char *key, const char *value); - /// output body bytes - void (*output_body)(const char *buf, size_t size); -}; +#define HTTP_METHOD_NAME "method" +#define HTTP_TIMEOUT_NAME "timeout" +#define HTTP_HEADERS_NAME "headers" +#define HTTP_ANY_STATUS_NAME "any-status" +#define FILE_STATUS_NAME "status" +//@} /// core func -void globals_init(Pool& pool); +void pa_globals_init(Pool& pool); /// hex_value[c] = hex value of c extern short hex_value[0x100]; -/// target-specific service functions -extern Service_funcs service_funcs; - //@{ /// global string -extern String *content_type_name; -extern String *body_name; -extern String *value_name; -extern String *expires_name; -extern String *path_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 optimized_html_name; +extern String content_type_name; +extern String charset_name; +extern String body_name; +extern String download_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 conf_method_name; +extern String auto_method_name; + +extern String main_class_name; + + +extern String charsets_name; + +extern String mime_types_name; +extern String origins_mode_name; + +extern String result_var_name; +extern String match_var_name; + +extern String exception_var_name; +extern String exception_type_part_name; +extern String exception_source_part_name; +extern String exception_comment_part_name; +extern String exception_handled_part_name; + +extern String content_disposition_name; +extern String content_disposition_value; +extern String content_disposition_filename_name; -extern String *limits_name; -extern String *post_max_size_name; +extern String limits_name; -extern String *defaults_name; +extern String class_path_name; + +extern String switch_data_name; + +extern String cache_data_name; + +extern String sql_limit_name; +extern String sql_offset_name; +extern String sql_default_name; +extern String sql_distinct_name; + +extern String charset_UTF8_name; + +extern String hash_default_element_name; + +extern String http_method_name; +extern String http_timeout_name; +extern String http_headers_name; +extern String http_any_status_name; +extern String file_status_name; -extern String *result_var_name; //@} -/// global hash -extern Hash *untaint_lang_name2enum; +extern Table date_calendar_table_template; + +/// name to enum language table +extern Hash untaint_lang_name2enum; + +/// UTF8 charset +extern Charset utf8_charset; + +#ifdef XML +/// DOMImplementation +extern GdomeDOMImplementation *domimpl; + +/// 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 #endif