Annotation of parser3/src/classes/classes.h, revision 1.36
1.2 paf 1: /** @file
2: Parser: @b Methoded class decl.
3:
1.35 moko 4: Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)
1.16 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.2 paf 6: */
1.24 paf 7:
1.5 paf 8: #ifndef CLASSES_H
9: #define CLASSES_H
1.20 paf 10:
1.36 ! moko 11: #define IDENT_CLASSES_H "$Id: classes.h,v 1.35 2015/10/26 01:21:53 moko Exp $"
1.24 paf 12:
13: // include
1.2 paf 14:
15: #include "pa_vstateless_class.h"
16: #include "pa_array.h"
17:
18: /** Pure virtual base for configurable Methoded descendants
1.7 paf 19: @see Methoded_array
1.2 paf 20: */
1.24 paf 21: class Methoded: public VStateless_class {
1.2 paf 22: public: // Methoded
23:
1.6 paf 24: /** should Methoded_array::register_directly_used register this class in
25: Request::classes() or not.
26: if not - global variable with Methoded descendant
27: is used in VStateless_class parameter
28: */
1.33 moko 29: virtual bool used_directly() { return true; }
1.6 paf 30: /// use this method to read parameters from root "auto.p"; access r.main_class
1.13 parser 31: virtual void configure_admin(Request& ) {}
1.6 paf 32: /// use this method to read parameters from 'MAIN' class; access r.main_class
1.13 parser 33: virtual void configure_user(Request& ) {}
1.9 parser 34: /// use it to construct static variables. check some static so that would be only ONCE!
35: virtual void construct_statics() {}
1.2 paf 36:
37: public: // usage
38:
1.24 paf 39: Methoded(const char* aname, VStateless_class* abase=0):
40: VStateless_class(new String(aname), abase) {
1.11 parser 41: }
1.2 paf 42:
43: void register_directly_used(Request& r);
44:
45: };
46:
1.8 parser 47: /// all Methoded registered here in autogenerated classes.C
1.24 paf 48: class Methoded_array: public Array<Methoded*> {
1.2 paf 49: public:
1.24 paf 50: Methoded_array();
1.2 paf 51:
52: public: // Methoded for_each-es
1.7 paf 53: /// @see Methoded::configure_admin
1.3 paf 54: void configure_admin(Request& r);
1.7 paf 55: /// @see Methoded::configure_user
1.3 paf 56: void configure_user(Request& r);
1.7 paf 57: /// @see Methoded::register_directly_used
1.2 paf 58: void register_directly_used(Request& r);
59: };
60:
1.24 paf 61: // globals
62:
63: Methoded_array& methoded_array();
64:
65: // defines
66:
1.36 ! moko 67: #define DECLARE_CLASS_VAR(name, self) \
! 68: Methoded* name##_class=self
1.2 paf 69:
70: #endif
E-mail: