--- parser3/src/include/pa_request.h 2001/09/24 14:34:25 1.97 +++ parser3/src/include/pa_request.h 2001/09/30 09:56:43 1.99 @@ -2,10 +2,9 @@ Parser: request class decl. Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_request.h,v 1.97 2001/09/24 14:34:25 parser Exp $ + $Id: pa_request.h,v 1.99 2001/09/30 09:56:43 parser Exp $ */ #ifndef PA_REQUEST_H @@ -27,6 +26,13 @@ #include "pa_vcookie.h" #include "pa_sql_driver_manager.h" +#ifdef XML +# include +# include +# include +# include +#endif + #ifndef NO_STRING_ORIGIN # define COMPILE_PARAMS \ const char *source, \ @@ -141,6 +147,9 @@ public: /// returns the mime type of 'user_file_name_cstr' const String& mime_type_of(const char *user_file_name_cstr); + /// PCRE character tables + unsigned char *pcre_tables(); + public: /// info from web server @@ -173,13 +182,10 @@ public: /// connection SQL_Connection *connection; - /// PCRE character tables - unsigned char *pcre_tables; /// classes configured data Hash classes_conf; - private: // core data /// classes @@ -196,6 +202,9 @@ private: // core data */ uint anti_endless_execute_recoursion; + /// charset->pcre_tables+XML256TableTranscoder [Request_CTYPE_value] + Hash CTYPE; + private: // compile.C VStateless_class& real_compile(COMPILE_PARAMS); @@ -241,6 +250,22 @@ private: void output_result(const VFile& body_file, bool header_only); }; +/// Request::CTYPE hash value +class Request_CTYPE_value : public Pooled { +public: + /// PCRE character tables + unsigned char *pcre_tables; +#ifdef XML + /// Xalan transformer for this charset + XML256TableTranscoder *transcoder; +#endif + + Request_CTYPE_value(Pool& apool, + unsigned char * apcre_tables, XML256TableTranscoder *atranscoder) : Pooled(apool), + pcre_tables(apcre_tables), transcoder(atranscoder) { + } +}; + /// Auto-object used for temporary changing Request::flang. class Temp_lang { Request& frequest;