Annotation of parser3/src/classes/classes.C, revision 1.28
1.24 misha 1: /** @file
2: Parser: @b Methoded and Methoded_array classes.
3:
1.26 moko 4: Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)
1.24 misha 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
6: */
7:
8: #include "classes.h"
9: #include "pa_request.h"
10:
1.28 ! moko 11: volatile const char * IDENT_CLASSES_C="$Id: classes.C,v 1.27 2016/03/31 21:46:19 moko Exp $" IDENT_CLASSES_H;
1.25 moko 12:
1.24 misha 13: // Methoded
14:
15: void Methoded::register_directly_used(Request& r) {
16: if(used_directly()) {
1.28 ! moko 17: r.classes().put(type(), this);
1.24 misha 18: }
19:
20: // prevent system classes from modification [calling set_method]
21: // ^process[$string:CLASS]{@method} prohibited from now on...
22: this->lock();
23: }
24:
25: // Methoded_array
26:
27: // global variable
28:
29: Methoded_array& methoded_array() {
30: static Methoded_array* result=0;
31: if(!result)
32: result=new Methoded_array;
33:
34: return *result;
35: }
36:
37: // methods
38:
39: Methoded_array::Methoded_array() {
40: # include "classes.inc"
41: }
42:
43: static void configure_admin_one(Methoded_array::element_type methoded, Request *r) {
1.27 moko 44: methoded->configure_admin(*r);
1.24 misha 45: }
46: void Methoded_array::configure_admin(Request& r) {
47: for_each(configure_admin_one, &r);
48: }
49:
50: static void configure_user_one(Methoded_array::element_type methoded, Request *r) {
1.27 moko 51: methoded->configure_user(*r);
1.24 misha 52: }
53: void Methoded_array::configure_user(Request& r) {
54: for_each(configure_user_one, &r);
55: }
56:
57: static void register_one(Methoded_array::element_type methoded, Request *r) {
1.27 moko 58: methoded->register_directly_used(*r);
1.24 misha 59: }
60: void Methoded_array::register_directly_used(Request& r) {
61: for_each(register_one, &r);
62: }
E-mail: