Diff for /parser3/src/include/pa_request.h between versions 1.160.2.37.2.21 and 1.166

version 1.160.2.37.2.21, 2003/04/03 10:18:24 version 1.166, 2003/10/21 04:45:19
Line 50  class Request: public PA_Object { Line 50  class Request: public PA_Object {
 public:  public:
         class Trace {          class Trace {
                 const String* fname;                  const String* fname;
                 Operation::Info forigin;                  Operation::Origin forigin;
         public:          public:
                 Trace(): fname(0) {}                  Trace(): fname(0) {}
                 void clear() { fname=0; }                  void clear() { fname=0; }
                 operator bool() const { return fname!=0; }                  operator bool() const { return fname!=0; }
   
                 Trace(const String* aname, const Operation::Info aorigin):                  Trace(const String* aname, const Operation::Origin aorigin):
                         fname(aname), forigin(aorigin) {}                          fname(aname), forigin(aorigin) {}
   
                 const String* name() const { return fname; }                  const String* name() const { return fname; }
                 const Operation::Info origin() const { return forigin; }                  const Operation::Origin origin() const { return forigin; }
         };          };
   
   
Line 92  private: Line 92  private:
                 Exception_trace(): fbottom(0) {}                  Exception_trace(): fbottom(0) {}
   
                 size_t bottom_index() { return fbottom; }                  size_t bottom_index() { return fbottom; }
                   void set_bottom_index(size_t abottom) { fbottom=abottom; }
                 element_type bottom_value() { return get(bottom_index()); }                  element_type bottom_value() { return get(bottom_index()); }
   
                 void clear() {                  void clear() {
Line 111  private: Line 112  private:
         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 String::Body, bool> used_files;
         /// list of all used files, Operation::file_no = index to it          /// list of all used files, Operation::file_no = index to it
         Array<StringBody> file_list;          Array<String::Body> file_list;
   
         /**     endless execute(execute(... preventing counter           /**     endless execute(execute(... preventing counter 
                 @see ANTI_ENDLESS_EXECUTE_RECOURSION                  @see ANTI_ENDLESS_EXECUTE_RECOURSION
Line 143  public: Line 144  public:
         bool finterrupted;          bool finterrupted;
   
 public:  public:
         size_t register_file(StringBody file_spec);          size_t register_file(String::Body file_spec);
   
         struct Exception_details {          struct Exception_details {
                 const Trace trace;                  const Trace trace;
Line 153  public: Line 154  public:
                 Exception_details(                  Exception_details(
                         const Trace atrace,                          const Trace atrace,
                         const String* aproblem_source,                          const String* aproblem_source,
                         VHash& avhash):                          VHash& avhash): trace(atrace), problem_source(aproblem_source), vhash(avhash) {}
                         trace(atrace), problem_source(aproblem_source), vhash(avhash) {}  
   
         };          };
         Exception_details get_details(const Exception& e);          Exception_details get_details(const Exception& e);
   
Line 207  public: Line 206  public:
         /// compiles the file, maybe forcing it's class @a name and @a base_class.          /// compiles the file, maybe forcing it's class @a name and @a base_class.
         void use_file(VStateless_class& aclass,          void use_file(VStateless_class& aclass,
                 const String& file_name,                   const String& file_name, 
                   const String* main_alias=0,
                 bool ignore_class_path=false,                   bool ignore_class_path=false, 
                 bool fail_on_read_problem=true, bool fail_on_file_absence=true); // pa_request.C                  bool fail_on_read_problem=true, 
                   bool fail_on_file_absence=true); // pa_request.C
         /// compiles a @a source buffer          /// compiles a @a source buffer
         void use_buf(VStateless_class& aclass,          void use_buf(VStateless_class& aclass,
                 const char* source,                   const char* source, 
                   const String* main_alias,
                 uint file_no); // pa_request.C                  uint file_no); // 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
Line 335  public: // charset helpers Line 337  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
         GdomeDOMString_auto_ptr transcode(const StringBody s);          GdomeDOMString_auto_ptr transcode(const String::Body s);
         /// @see Charset::transcode          /// @see Charset::transcode
         const String& transcode(GdomeDOMString* s);          const String& transcode(GdomeDOMString* s);
         /// @see Charset::transcode          /// @see Charset::transcode
Line 352  private: Line 354  private:
   
 private: // compile.C  private: // compile.C
   
         VStateless_class& compile(VStateless_class* aclass, const char* source, uint file_no);          VStateless_class& compile(VStateless_class* aclass, 
                   const char* source, const String* main_alias, 
                   uint file_no);
   
 private: // execute.C  private: // execute.C
   
         /// for @postprocess[body]          /// for @postprocess[body]
         const String& execute_method(VMethodFrame& amethodFrame, const Method& method);          StringOrValue execute_method(VMethodFrame& amethodFrame, const Method& method);
         //{ for @conf[filespec] and @auto[filespec]          //{ for @conf[filespec] and @auto[filespec]
         const String* execute_method(Value& aself,           const String* execute_method(Value& aself, 
                 const Method& method, VString* optional_param,                  const Method& method, VString* optional_param,
Line 417  class Request_context_saver { Line 421  class Request_context_saver {
         Request& fr;          Request& fr;
   
         /// exception stack trace          /// exception stack trace
         size_t exception_trace;          size_t exception_trace_top;
           size_t exception_trace_bottom;
         /// execution stack          /// execution stack
         size_t stack;          size_t stack;
           uint anti_endless_execute_recoursion;
         /// contexts          /// contexts
         VMethodFrame* method_frame;          VMethodFrame* method_frame;
         Value* rcontext;          Value* rcontext;
Line 431  class Request_context_saver { Line 437  class Request_context_saver {
   
 public:  public:
         Request_context_saver(Request& ar) :           Request_context_saver(Request& ar) : 
                 exception_trace(ar.exception_trace.top_index()),                          exception_trace_top(ar.exception_trace.top_index()),    
                   exception_trace_bottom(ar.exception_trace.bottom_index()),      
                 stack(ar.stack.top_index()),                  stack(ar.stack.top_index()),
                   anti_endless_execute_recoursion(ar.anti_endless_execute_recoursion),
                 method_frame(ar.method_frame),                  method_frame(ar.method_frame),
                 rcontext(ar.rcontext),                  rcontext(ar.rcontext),
                 wcontext(ar.wcontext),                  wcontext(ar.wcontext),
Line 440  public: Line 448  public:
                 fconnection(ar.fconnection),                  fconnection(ar.fconnection),
                 fr(ar) {}                  fr(ar) {}
         void restore() {          void restore() {
                 fr.exception_trace.top_index(exception_trace);                  fr.exception_trace.set_top_index(exception_trace_top);
                 fr.stack.top_index(stack);                  fr.exception_trace.set_bottom_index(exception_trace_bottom);
                   fr.stack.set_top_index(stack);
                   fr.anti_endless_execute_recoursion=anti_endless_execute_recoursion;
                 fr.method_frame=method_frame, fr.rcontext=rcontext; fr.wcontext=wcontext;                  fr.method_frame=method_frame, fr.rcontext=rcontext; fr.wcontext=wcontext;
                 fr.flang=flang;                  fr.flang=flang;
                 fr.fconnection=fconnection;                  fr.fconnection=fconnection;

Removed from v.1.160.2.37.2.21  
changed lines
  Added in v.1.166


E-mail: