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