--- parser3/src/include/pa_request.h 2005/12/16 10:15:12 1.180 +++ parser3/src/include/pa_request.h 2007/10/22 13:44:42 1.185 @@ -8,7 +8,7 @@ #ifndef PA_REQUEST_H #define PA_REQUEST_H -static const char * const IDENT_REQUEST_H="$Date: 2005/12/16 10:15:12 $"; +static const char * const IDENT_REQUEST_H="$Date: 2007/10/22 13:44:42 $"; #include "pa_pool.h" #include "pa_hash.h" @@ -18,6 +18,7 @@ static const char * const IDENT_REQUEST_ #include "pa_request_info.h" #include "pa_request_charsets.h" #include "pa_sapi.h" +#include "pa_vconsole.h" #ifdef RESOURCES_DEBUG #include @@ -63,6 +64,12 @@ public: const Operation::Origin origin() const { return forigin; } }; + enum Skip { + SKIP_NOTHING, + SKIP_BREAK, + SKIP_CONTINUE + }; + private: Pool fpool; public: @@ -144,6 +151,7 @@ public: //@} /// interrupted flag, raised on signals [SIGPIPE] bool finterrupted; + Skip fskip; public: uint register_file(String::Body file_spec); @@ -198,7 +206,7 @@ public: // anti_endless_execute_recoursion if(++anti_endless_execute_recoursion==ANTI_ENDLESS_EXECUTE_RECOURSION) { anti_endless_execute_recoursion=0; // give @exception a chance - throw Exception("parser.runtime", + throw Exception(PARSER_RUNTIME, 0, //&name, "call canceled - endless recursion detected"); } @@ -286,7 +294,7 @@ public: /// returns current SQL connection if any SQL_Connection* connection(bool fail_on_error=true) { if(fail_on_error && !fconnection) - throw Exception("parser.runtime", + throw Exception(PARSER_RUNTIME, 0, "outside of 'connect' operator"); @@ -296,6 +304,9 @@ public: void set_interrupted(bool ainterrupted) { finterrupted=ainterrupted; } bool get_interrupted() { return finterrupted; } + void set_skip(Skip askip) { fskip=askip; } + Skip get_skip() { return fskip; } + public: /// info from web server @@ -317,6 +328,8 @@ public: VResponse& response; /// $cookie:elements VCookie& cookie; + /// $console + VConsole& console; /// classes configured data Hash classes_conf; @@ -350,7 +363,8 @@ public: // status read methods Execute_nonvirtual_method_result(): string(0), method(0) {} }; Execute_nonvirtual_method_result execute_nonvirtual_method(VStateless_class& aclass, - const String& method_name, VString* optional_param, + const String& method_name, + VString* optional_param, bool do_return_string); //} @@ -497,7 +511,8 @@ public: // defines for externs #define CONTENT_DISPOSITION_NAME "content-disposition" -#define CONTENT_DISPOSITION_VALUE "attachment" +#define CONTENT_DISPOSITION_ATTACHMENT "attachment" +#define CONTENT_DISPOSITION_INLINE "inline" #define CONTENT_DISPOSITION_FILENAME_NAME "filename" #define EXCEPTION_HANDLED_PART_NAME "handled" @@ -508,7 +523,8 @@ extern const String main_method_name; extern const String auto_method_name; extern const String body_name; extern const String content_disposition_name; -extern const String content_disposition_value; +extern const String content_disposition_attachment; +extern const String content_disposition_inline; extern const String content_disposition_filename_name; extern const String exception_type_part_name;