|
|
| version 1.160.2.37.2.9, 2003/03/24 11:22:48 | version 1.160.2.37.2.15, 2003/04/02 09:32:11 |
|---|---|
| Line 10 | Line 10 |
| static const char* IDENT_REQUEST_H="$Date$"; | static const char* IDENT_REQUEST_H="$Date$"; |
| #include "pa_request_info.h" | |
| #include "pa_hash.h" | #include "pa_hash.h" |
| #include "pa_wcontext.h" | #include "pa_wcontext.h" |
| #include "pa_value.h" | #include "pa_value.h" |
| Line 33 class Temp_lang; | Line 32 class Temp_lang; |
| class Methoded; | class Methoded; |
| class VMethodFrame; | class VMethodFrame; |
| class GdomeDOMString_auto_ptr; | class GdomeDOMString_auto_ptr; |
| class VMail; DECLARE_OBJECT_PTR(VMail); | class VMail; |
| class VForm; DECLARE_OBJECT_PTR(VForm); | class VForm; |
| class VResponse; DECLARE_OBJECT_PTR(VResponse); | class VResponse; |
| class VCookie; DECLARE_OBJECT_PTR(VCookie); | class VCookie; |
| class VStateless_class; DECLARE_OBJECT_PTR(VStateless_class); | class VStateless_class; |
| /// Main workhorse. | /// Main workhorse. |
| class Request: public PA_Object { | class Request: public PA_Object { |
| Line 52 class Request: public PA_Object { | Line 51 class Request: public PA_Object { |
| HashStringValue fclasses; | HashStringValue fclasses; |
| /// already used files to avoid cyclic uses | /// already used files to avoid cyclic uses |
| Hash<const StringBody&, bool> used_files; | Hash<const StringBody, bool> used_files; |
| /** endless execute(execute(... preventing counter | /** endless execute(execute(... preventing counter |
| @see ANTI_ENDLESS_EXECUTE_RECOURSION | @see ANTI_ENDLESS_EXECUTE_RECOURSION |
| Line 61 class Request: public PA_Object { | Line 60 class Request: public PA_Object { |
| ///@} | ///@} |
| public: | |
| union StackItem { | union StackItem { |
| const String* string() const { return value->get_string(); } | private: |
| Value* value; | Value* fvalue; |
| ArrayOperation* ops; | ArrayOperation* fops; |
| VMethodFrame* method_frame; | VMethodFrame* fmethod_frame; |
| public: | |
| Value& value() const { return *fvalue; } | |
| const String& string() const { | |
| const String* result=fvalue->get_string(); | |
| assert(result); | |
| return *result; | |
| } | |
| ArrayOperation& ops() const { return *fops; } | |
| VMethodFrame& method_frame() const { return *fmethod_frame; } | |
| /// needed to fill unused Array entries | /// needed to fill unused Array entries |
| StackItem() {} | StackItem() {} |
| StackItem(Value* avalue): value(avalue) {} | StackItem(Value& avalue): fvalue(&avalue) {} |
| StackItem(ArrayOperation* aops): ops(aops) {} | StackItem(ArrayOperation& aops): fops(&aops) {} |
| StackItem(VMethodFrame* amethod_frame): method_frame(amethod_frame) {} | StackItem(VMethodFrame& amethod_frame): fmethod_frame(&amethod_frame) {} |
| }; | }; |
| /// execution stack | |
| Stack<StackItem> stack; | |
| public: | |
| //@{ request processing status | //@{ request processing status |
| /// exception stack trace | /// exception stack trace |
| //Stack<String*> exception_trace; | //Stack<String*> exception_trace; |
| /// execution stack | |
| Stack<StackItem> stack; | |
| /// contexts | /// contexts |
| VMethodFrame* method_frame; | VMethodFrame* method_frame; |
| Value* rcontext; | Value* rcontext; |
| Line 94 public: | Line 103 public: |
| bool finterrupted; | bool finterrupted; |
| public: | public: |
| /// @see Stack::wipe_unused | |
| void wipe_unused_execution_stack() { | |
| stack.wipe_unused(); | |
| } | |
| #ifdef RESOURCES_DEBUG | #ifdef RESOURCES_DEBUG |
| /// measures | /// measures |
| Line 266 public: // charset helpers | Line 280 public: // charset helpers |
| /// @see Charset::transcode | /// @see Charset::transcode |
| GdomeDOMString_auto_ptr transcode(const String& s); | GdomeDOMString_auto_ptr transcode(const String& s); |
| /// @see Charset::transcode | /// @see Charset::transcode |
| const String& transcode(GdomeDOMString* s | GdomeDOMString_auto_ptr transcode(const StringBody s); |
| #ifndef NO_STRING_ORIGIN | |
| , const String& origin | |
| #endif | |
| ); | |
| /// @see Charset::transcode | /// @see Charset::transcode |
| const String& transcode(xmlChar* s | const String& transcode(GdomeDOMString* s); |
| #ifndef NO_STRING_ORIGIN | /// @see Charset::transcode |
| , const String& origin | const String& transcode(xmlChar* s); |
| #endif | |
| ); | |
| #endif | #endif |
| Line 311 private: // execute.C | Line 319 private: // execute.C |
| /// for @main[] | /// for @main[] |
| const String* execute_virtual_method(Value& aself, const String& method_name); | const String* execute_virtual_method(Value& aself, const String& method_name); |
| Value* get_element(bool can_call_operator); | Value& get_element(bool can_call_operator); |
| private: // defaults | private: // defaults |