Annotation of parser3/src/classes/classes.C, revision 1.29

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.29    ! moko       11: volatile const char * IDENT_CLASSES_C="$Id: classes.C,v 1.28 2016/04/01 16:27:31 moko Exp $" IDENT_CLASSES_H;
1.25      moko       12: 
1.24      misha      13: // Methoded
                     14: 
                     15: void Methoded::register_directly_used(Request& r) {
1.29    ! moko       16:        if(used_directly())
        !            17:                r.put_class(this);
1.24      misha      18: 
                     19:        // prevent system classes from modification [calling set_method]
                     20:        // ^process[$string:CLASS]{@method} prohibited from now on...
                     21:        this->lock();
                     22: }
                     23: 
                     24: // Methoded_array
                     25: 
                     26: // global variable
                     27: 
                     28: Methoded_array& methoded_array() {
                     29:        static Methoded_array* result=0;
                     30:        if(!result)
                     31:                result=new Methoded_array;
                     32: 
                     33:        return *result;
                     34: }
                     35: 
                     36: // methods
                     37: 
                     38: Methoded_array::Methoded_array() {
                     39: #      include "classes.inc"
                     40: }
                     41: 
                     42: static void configure_admin_one(Methoded_array::element_type methoded, Request *r) {
1.27      moko       43:        methoded->configure_admin(*r);
1.24      misha      44: }
                     45: void Methoded_array::configure_admin(Request& r) {
                     46:        for_each(configure_admin_one, &r);
                     47: }
                     48: 
                     49: static void configure_user_one(Methoded_array::element_type methoded, Request *r) {
1.27      moko       50:        methoded->configure_user(*r);
1.24      misha      51: }
                     52: void Methoded_array::configure_user(Request& r) {
                     53:        for_each(configure_user_one, &r);
                     54: }
                     55: 
                     56: static void register_one(Methoded_array::element_type methoded, Request *r) {
1.27      moko       57:        methoded->register_directly_used(*r);
1.24      misha      58: }
                     59: void Methoded_array::register_directly_used(Request& r) {
                     60:        for_each(register_one, &r);
                     61: }

E-mail: