Annotation of parser3/src/classes/classes.h, revision 1.10
1.2 paf 1: /** @file
2: Parser: @b Methoded class decl.
3:
4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
5:
6: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
7:
1.10 ! parser 8: $Id: classes.h,v 1.9 2001/08/02 06:54:12 parser Exp $
1.2 paf 9: */
10:
1.5 paf 11: #ifndef CLASSES_H
12: #define CLASSES_H
1.2 paf 13:
14: #include "pa_vstateless_class.h"
15: #include "pa_array.h"
16:
17: /** Pure virtual base for configurable Methoded descendants
1.7 paf 18: @see Methoded_array
1.2 paf 19: */
20: class Methoded : public VStateless_class {
21: public: // Methoded
22:
1.6 paf 23: /** should Methoded_array::register_directly_used register this class in
24: Request::classes() or not.
25: if not - global variable with Methoded descendant
26: is used in VStateless_class parameter
27: */
1.2 paf 28: virtual bool used_directly() =0;
1.6 paf 29: /// use this method to read parameters from root "auto.p"; access r.main_class
1.3 paf 30: virtual void configure_admin(Request& r) {}
1.6 paf 31: /// use this method to read parameters from 'MAIN' class; access r.main_class
1.3 paf 32: virtual void configure_user(Request& r) {}
1.9 parser 33: /// use it to construct static variables. check some static so that would be only ONCE!
34: virtual void construct_statics() {}
1.2 paf 35:
36: public: // usage
37:
1.10 ! parser 38: Methoded(Pool& apool) : VStateless_class(apool) {
! 39: }
1.2 paf 40:
41: void register_directly_used(Request& r);
42:
43: };
44:
1.8 parser 45: /// all Methoded registered here in autogenerated classes.C
1.2 paf 46: class Methoded_array : public Array {
47: public:
48: Methoded_array(Pool& pool);
49:
50: public: // Methoded for_each-es
1.7 paf 51: /// @see Methoded::configure_admin
1.3 paf 52: void configure_admin(Request& r);
1.7 paf 53: /// @see Methoded::configure_user
1.3 paf 54: void configure_user(Request& r);
1.7 paf 55: /// @see Methoded::register_directly_used
1.2 paf 56: void register_directly_used(Request& r);
57: };
58:
59: extern Methoded_array *methoded_array;
60: void init_methoded_array(Pool& pool);
61:
62: #endif
E-mail: