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

1.2       paf         1: /** @file
                      2:        Parser: @b Methoded and Methoded_array classes.
                      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.6     ! parser      8:        $Id: classes.C,v 1.5.2.2 2001/05/21 12:36:45 parser Exp $
1.2       paf         9: */
                     10: 
                     11: #include "classes.h"
                     12: #include "pa_request.h"
                     13: 
                     14: // Methoded
                     15: 
                     16: void Methoded::register_directly_used(Request& r) {
                     17:        if(used_directly())
                     18:                r.classes().put(name(), this);
                     19: }
                     20: 
                     21: // Methoded_array
                     22: 
                     23: // global variable
                     24: 
                     25: Methoded_array *methoded_array;
                     26: 
                     27: // methods
                     28: 
                     29: Methoded_array::Methoded_array(Pool& apool) : Array(apool) {
                     30: #      include "classes.inc"
                     31: }
                     32: 
1.3       paf        33: static void configure_admin_one(Array::Item *value, void *info) {
1.2       paf        34:        Request& r=*static_cast<Request *>(info);
                     35:        Methoded *methoded=static_cast<Methoded *>(value);
1.3       paf        36:        methoded->configure_admin(r);
1.2       paf        37: }
                     38: 
1.3       paf        39: void Methoded_array::configure_admin(Request& r) {
                     40:        for_each(configure_admin_one, &r);
                     41: }
                     42: 
                     43: static void configure_user_one(Array::Item *value, void *info) {
                     44:        Request& r=*static_cast<Request *>(info);
                     45:        Methoded *methoded=static_cast<Methoded *>(value);
                     46:        methoded->configure_user(r);
                     47: }
                     48: 
                     49: void Methoded_array::configure_user(Request& r) {
                     50:        for_each(configure_user_one, &r);
1.2       paf        51: }
                     52: 
                     53: static void register_one(Array::Item *value, void *info) {
                     54:        Request& r=*static_cast<Request *>(info);
                     55:        Methoded *methoded=static_cast<Methoded *>(value);
1.6     ! parser     56:        // register "operators" as a superclass of all system classes
        !            57:        methoded->set_base(r.OP);
1.2       paf        58:        methoded->register_directly_used(r);
                     59: }
                     60: 
                     61: void Methoded_array::register_directly_used(Request& r) {
                     62:        for_each(register_one, &r);
                     63: }
                     64: 
                     65: // creator
                     66: 
                     67: void init_methoded_array(Pool& pool) {
                     68:        methoded_array=new(pool) Methoded_array(pool);
                     69: }

E-mail: