|
|
| version 1.9, 2001/08/02 06:54:12 | version 1.28.2.2, 2005/07/27 10:57:52 |
|---|---|
| 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-2004 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 * const 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 | @see Methoded_array |
| */ | */ |
| class Methoded : public VStateless_class { | class Methoded: public VStateless_class { |
| public: // Value | |
| override const Junction* put_element(Value& /*self*/, const String& /*name*/, Value * /*value*/) { | |
| return 0; // fewer useless Exceptions | |
| } | |
| public: // Methoded | public: // Methoded |
| /** should Methoded_array::register_directly_used register this class in | /** should Methoded_array::register_directly_used register this class in |
| Line 27 public: // Methoded | Line 34 public: // Methoded |
| */ | */ |
| virtual bool used_directly() =0; | virtual bool used_directly() =0; |
| /// use this method to read parameters from root "auto.p"; access r.main_class | /// use this method to read parameters from root "auto.p"; access r.main_class |
| virtual void configure_admin(Request& r) {} | virtual void configure_admin(Request& ) {} |
| /// use this method to read parameters from 'MAIN' class; access r.main_class | /// use this method to read parameters from 'MAIN' class; access r.main_class |
| virtual void configure_user(Request& r) {} | virtual void configure_user(Request& ) {} |
| /// use it to construct static variables. check some static so that would be only ONCE! | /// use it to construct static variables. check some static so that would be only ONCE! |
| virtual void construct_statics() {} | virtual void construct_statics() {} |
| public: // usage | public: // usage |
| Methoded(Pool& pool) : VStateless_class(pool) { | Methoded(const char* aname, VStateless_class* abase=0): |
| VStateless_class(new String(aname), abase) { | |
| } | } |
| void register_directly_used(Request& r); | void register_directly_used(Request& r); |
| Line 43 public: // usage | Line 51 public: // usage |
| }; | }; |
| /// all Methoded registered here in autogenerated classes.C | /// all Methoded registered here in autogenerated classes.C |
| class Methoded_array : public Array { | class Methoded_array: public Array<Methoded*> { |
| public: | public: |
| Methoded_array(Pool& pool); | Methoded_array(); |
| public: // Methoded for_each-es | public: // Methoded for_each-es |
| /// @see Methoded::configure_admin | /// @see Methoded::configure_admin |
| Line 56 public: // Methoded for_each-es | Line 64 public: // Methoded for_each-es |
| void register_directly_used(Request& r); | void register_directly_used(Request& r); |
| }; | }; |
| extern Methoded_array *methoded_array; | // globals |
| void init_methoded_array(Pool& pool); | |
| Methoded_array& methoded_array(); | |
| // defines | |
| #define DECLARE_CLASS_VAR(name, self, base) \ | |
| Methoded* name##_class=self; \ | |
| Methoded* name##_base_class=base | |
| #endif | #endif |