--- parser3/src/include/pa_request.h 2003/01/31 14:03:53 1.160.2.10 +++ parser3/src/include/pa_request.h 2003/01/31 16:45:26 1.160.2.12 @@ -8,7 +8,7 @@ #ifndef PA_REQUEST_H #define PA_REQUEST_H -static const char* IDENT_REQUEST_H="$Date: 2003/01/31 14:03:53 $"; +static const char* IDENT_REQUEST_H="$Date: 2003/01/31 16:45:26 $"; #include "pa_pool.h" #include "pa_request_info.h" @@ -85,11 +85,25 @@ class Request: public PA_Object { ///@} public: + + class StackItem { + public: + StringPtr string; + ValuePtr value; + ArrayOperationPtr ops; + + /// needed to fill unused Array entries + StackItem() {} + StackItem(StringPtr astring): string(astring) {} + StackItem(ValuePtr avalue): value(avalue) {} + StackItem(ArrayOperationPtr aops): ops(aops) {} + }; + //@{ request processing status /// exception stack trace Stack exception_trace; /// execution stack - Stack stack; + Stack stack; /// contexts VMethodFrame *method_frame; Value *rcontext; @@ -133,9 +147,9 @@ public: bool header_only); /// executes ops - void execute(const Array& ops); // execute.C + void execute(ArrayOperation& ops); // execute.C /// execute ops with anti-recoursion check - void recoursion_checked_execute(StringPtr name, const Array& ops) { + void recoursion_checked_execute(StringPtr name, ArrayOperation& ops) { // anti_endless_execute_recoursion if(++anti_endless_execute_recoursion==ANTI_ENDLESS_EXECUTE_RECOURSION) { anti_endless_execute_recoursion=0; // give @exception a chance @@ -348,7 +362,7 @@ private: // connection manipulation private: - void output_result(const VFile& body_file, bool header_only, bool as_attachment); + void output_result(VFilePtr body_file, bool header_only, bool as_attachment); }; /// Auto-object used to save request context across ^try body