Diff for /parser3/src/include/pa_request.h between versions 1.173 and 1.186

version 1.173, 2003/11/28 09:24:52 version 1.186, 2007/10/22 14:33:43
Line 1 Line 1
 /** @file  /** @file
         Parser: request class decl.          Parser: request class decl.
   
         Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
 */  */
   
Line 18  static const char * const IDENT_REQUEST_ Line 18  static const char * const IDENT_REQUEST_
 #include "pa_request_info.h"  #include "pa_request_info.h"
 #include "pa_request_charsets.h"  #include "pa_request_charsets.h"
 #include "pa_sapi.h"  #include "pa_sapi.h"
   #include "pa_vconsole.h"
   
 #ifdef RESOURCES_DEBUG  #ifdef RESOURCES_DEBUG
 #include <sys/resource.h>  #include <sys/resource.h>
Line 33  const size_t pseudo_file_no__process=1; Line 34  const size_t pseudo_file_no__process=1;
 class Temp_lang;  class Temp_lang;
 class Methoded;  class Methoded;
 class VMethodFrame;  class VMethodFrame;
 class GdomeDOMString_auto_ptr;  
 class VMail;  class VMail;
 class VForm;  class VForm;
 class VResponse;  class VResponse;
Line 64  public: Line 64  public:
                 const Operation::Origin origin() const { return forigin; }                  const Operation::Origin origin() const { return forigin; }
         };          };
   
           enum Skip {
                   SKIP_NOTHING,
                   SKIP_BREAK,
                   SKIP_CONTINUE
           };
   
 private:  private:
         Pool fpool;          Pool fpool;
 public:  public:
Line 145  public: Line 151  public:
         //@}          //@}
         /// interrupted flag, raised on signals [SIGPIPE]          /// interrupted flag, raised on signals [SIGPIPE]
         bool finterrupted;          bool finterrupted;
           Skip fskip;
   
 public:  public:
         size_t register_file(String::Body file_spec);          uint register_file(String::Body file_spec);
   
         struct Exception_details {          struct Exception_details {
                 const Trace trace;                  const Trace trace;
Line 160  public: Line 167  public:
                         VHash& avhash): trace(atrace), problem_source(aproblem_source), vhash(avhash) {}                          VHash& avhash): trace(atrace), problem_source(aproblem_source), vhash(avhash) {}
         };          };
         Exception_details get_details(const Exception& e);          Exception_details get_details(const Exception& e);
           const char* get_exception_cstr(const Exception& e, Exception_details& details);
   
         /// @see Stack::wipe_unused          /// @see Stack::wipe_unused
         void wipe_unused_execution_stack() {          void wipe_unused_execution_stack() {
Line 198  public: Line 206  public:
                 // anti_endless_execute_recoursion                  // anti_endless_execute_recoursion
                 if(++anti_endless_execute_recoursion==ANTI_ENDLESS_EXECUTE_RECOURSION) {                  if(++anti_endless_execute_recoursion==ANTI_ENDLESS_EXECUTE_RECOURSION) {
                         anti_endless_execute_recoursion=0; // give @exception a chance                          anti_endless_execute_recoursion=0; // give @exception a chance
                         throw Exception("parser.runtime",                          throw Exception(PARSER_RUNTIME,
                                 0, //&name,                                  0, //&name,
                                 "call canceled - endless recursion detected");                                  "call canceled - endless recursion detected");
                 }                  }
Line 217  public: Line 225  public:
         void use_buf(VStateless_class& aclass,          void use_buf(VStateless_class& aclass,
                 const char* source,                   const char* source, 
                 const String* main_alias,                  const String* main_alias,
                 uint file_no); // pa_request.C                  uint file_no,
                   int line_no_offset=0); // pa_request.C
   
         /// processes any code-junction there may be inside of @a value          /// processes any code-junction there may be inside of @a value
         StringOrValue process(Value& input_value, bool intercept_string=true); // execute.C          StringOrValue process(Value& input_value, bool intercept_string=true); // execute.C
Line 285  public: Line 294  public:
         /// returns current SQL connection if any          /// returns current SQL connection if any
         SQL_Connection* connection(bool fail_on_error=true) {           SQL_Connection* connection(bool fail_on_error=true) { 
                 if(fail_on_error && !fconnection)                  if(fail_on_error && !fconnection)
                         throw Exception("parser.runtime",                          throw Exception(PARSER_RUNTIME,
                                 0,                                  0,
                                 "outside of 'connect' operator");                                  "outside of 'connect' operator");
   
Line 295  public: Line 304  public:
         void set_interrupted(bool ainterrupted) { finterrupted=ainterrupted; }          void set_interrupted(bool ainterrupted) { finterrupted=ainterrupted; }
         bool get_interrupted() { return finterrupted; }          bool get_interrupted() { return finterrupted; }
   
           void set_skip(Skip askip) { fskip=askip; }
           Skip get_skip() { return fskip; }
   
 public:  public:
                   
         /// info from web server          /// info from web server
Line 316  public: Line 328  public:
         VResponse& response;          VResponse& response;
         /// $cookie:elements          /// $cookie:elements
         VCookie& cookie;          VCookie& cookie;
           /// $console
           VConsole& console;
   
         /// classes configured data          /// classes configured data
         Hash<const String::Body, void*> classes_conf;          Hash<const String::Body, void*> classes_conf;
Line 349  public: // status read methods Line 363  public: // status read methods
                 Execute_nonvirtual_method_result(): string(0), method(0) {}                  Execute_nonvirtual_method_result(): string(0), method(0) {}
         };          };
         Execute_nonvirtual_method_result execute_nonvirtual_method(VStateless_class& aclass,           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);                  bool do_return_string);
         //}          //}
   
Line 357  public: // status read methods Line 372  public: // status read methods
 public: // charset helpers  public: // charset helpers
   
         /// @see Charset::transcode          /// @see Charset::transcode
         GdomeDOMString_auto_ptr transcode(const String& s);          xmlChar* transcode(const String& s);
         /// @see Charset::transcode  
         GdomeDOMString_auto_ptr transcode(const String::Body s);  
         /// @see Charset::transcode          /// @see Charset::transcode
         const String& transcode(GdomeDOMString* s);          xmlChar* transcode(const String::Body s);
         /// @see Charset::transcode          /// @see Charset::transcode
         const String& transcode(xmlChar* s);          const String& transcode(const xmlChar* s);
   
 #endif  #endif
   
Line 374  private: Line 387  private:
   
         void configure_admin(VStateless_class& conf_class);          void configure_admin(VStateless_class& conf_class);
   
           void configure();
   
 private: // compile.C  private: // compile.C
   
         VStateless_class& compile(VStateless_class* aclass,           VStateless_class& compile(VStateless_class* aclass, 
                 const char* source, const String* main_alias,                   const char* source, const String* main_alias, 
                 uint file_no);                  uint file_no,
                   int line_no_offset);
   
 private: // execute.C  private: // execute.C
   
           void put_element(Value& ncontext, const String& name, Value& value);
         Value& get_element(Value& ncontext, const String& name, bool can_call_operator);          Value& get_element(Value& ncontext, const String& name, bool can_call_operator);
   
 private: // defaults  private: // defaults
Line 493  public: Line 510  public:
   
 // defines for externs  // defines for externs
   
 #define CONTENT_DISPOSITION_NAME "content-disposition"  #define CONTENT_TRANSFER_ENCODING_NAME "Content-Transfer-Encoding"
 #define CONTENT_DISPOSITION_VALUE "attachment"  #define CONTENT_DISPOSITION_NAME "Content-Disposition"
   #define CONTENT_DISPOSITION_ATTACHMENT "attachment"
   #define CONTENT_DISPOSITION_INLINE "inline"
 #define CONTENT_DISPOSITION_FILENAME_NAME "filename"  #define CONTENT_DISPOSITION_FILENAME_NAME "filename"
   
 #define EXCEPTION_HANDLED_PART_NAME "handled"  #define EXCEPTION_HANDLED_PART_NAME "handled"
   
   
Line 504  public: Line 524  public:
 extern const String main_method_name;  extern const String main_method_name;
 extern const String auto_method_name;  extern const String auto_method_name;
 extern const String body_name;  extern const String body_name;
   
 extern const String content_disposition_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 content_disposition_filename_name;
   
 extern const String exception_type_part_name;  extern const String exception_type_part_name;

Removed from v.1.173  
changed lines
  Added in v.1.186


E-mail: