Diff for /parser3/src/classes/classes.h between versions 1.5 and 1.23.2.9.2.1

version 1.5, 2001/04/28 15:22:38 version 1.23.2.9.2.1, 2003/03/18 15:14:13
Line 1 Line 1
 /** @file  /** @file
         Parser: @b Methoded class decl.          Parser: @b Methoded class decl.
   
         Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
           Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
         Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)  
   
         $Id$  
 */  */
   
 #ifndef CLASSES_H  #ifndef CLASSES_H
 #define CLASSES_H  #define CLASSES_H
   
   static const char* IDENT_CLASSES_H="$Date$";
   
   // include
   
 #include "pa_vstateless_class.h"  #include "pa_vstateless_class.h"
 #include "pa_array.h"  #include "pa_array.h"
   
 /**     Pure virtual base for configurable Methoded descendants  /**     Pure virtual base for configurable Methoded descendants
           @see Methoded_array
 */  */
 class Methoded : public VStateless_class {  class Methoded: public VStateless_class {
 public: // Value  public: // Value
   
         /// all: for error reporting after fail(), etc          override bool put_element(const String& /*name*/, Value * /*value*/, bool /*replace*/) { 
         const char *type() const { return "m_base"; }                  return false; // fewer useless Exceptions
           }
   
 public: // Methoded  public: // Methoded
   
           /** should Methoded_array::register_directly_used register this class in
                   Request::classes() or not. 
                   if not - global variable with Methoded descendant 
                   is used in VStateless_class parameter
           */
         virtual bool used_directly() =0;          virtual bool used_directly() =0;
         virtual void configure_admin(Request& r) {}          /// use this method to read parameters from root "auto.p"; access r.main_class
         virtual void configure_user(Request& r) {}          virtual void configure_admin(Request& ) {}
           /// use this method to read parameters from 'MAIN' class; access r.main_class
           virtual void configure_user(Request& ) {}
           /// use it to construct static variables. check some static so that would be only ONCE!
           virtual void construct_statics() {}
   
 public: // usage  public: // usage
   
         Methoded(Pool& pool) : VStateless_class(pool) {          Methoded(const char* aname, VStateless_class* abase=0): 
                   VStateless_class(String* (new String(aname)), abase) {
         }          }
   
         void register_directly_used(Request& r);          void register_directly_used(Request& r);
   
 };  };
   DECLARE_OBJECT_PTR(Methoded);
   
   /// all Methoded registered here in autogenerated classes.C
 class Methoded_array : public Array {  class Methoded_array: public Array<MethodedPtr> {
 public:  public:
         Methoded_array(Pool& pool);          Methoded_array();
   
 public: // Methoded for_each-es  public: // Methoded for_each-es
           /// @see Methoded::configure_admin
         void configure_admin(Request& r);          void configure_admin(Request& r);
           /// @see Methoded::configure_user
         void configure_user(Request& r);          void configure_user(Request& r);
           /// @see Methoded::register_directly_used
         void register_directly_used(Request& r);          void register_directly_used(Request& r);
 };  };
   DECLARE_OBJECT_PTR(Methoded_array);
   
   // globals
   
   Methoded_array& methoded_array();
   
   // defines
   
 extern Methoded_array *methoded_array;  #define DECLARE_CLASS_VAR(name, self, base) \
 void init_methoded_array(Pool& pool);          MethodedPtr name##_class(self); \
           MethodedPtr name##_base_class(base)
   
 #endif  #endif

Removed from v.1.5  
changed lines
  Added in v.1.23.2.9.2.1


E-mail: