--- parser3/src/classes/classes.C 2001/04/28 08:45:15 1.2 +++ parser3/src/classes/classes.C 2003/01/24 14:36:09 1.18.2.1 @@ -1,13 +1,12 @@ /** @file Parser: @b Methoded and Methoded_array classes. - Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - - Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: classes.C,v 1.2 2001/04/28 08:45:15 paf Exp $ + Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexandr Petrosian (http://paf.design.ru) */ +static const char* IDENT_CLASSES_C="$Date: 2003/01/24 14:36:09 $"; + #include "classes.h" #include "pa_request.h" @@ -22,36 +21,40 @@ void Methoded::register_directly_used(Re // global variable -Methoded_array *methoded_array; +Methoded_array methoded_array; // methods -Methoded_array::Methoded_array(Pool& apool) : Array(apool) { +Methoded_array::Methoded_array() { # include "classes.inc" } -static void configure_one(Array::Item *value, void *info) { +static void configure_admin_one(Array::Item *value, void *info) { Request& r=*static_cast(info); - Methoded *methoded=static_cast(value); - methoded->configure(r); + if(Methoded *methoded=static_cast(value)) + methoded->configure_admin(r); } -void Methoded_array::configure(Request& r) { - for_each(configure_one, &r); +void Methoded_array::configure_admin(Request& r) { + for_each(configure_admin_one, &r); } -static void register_one(Array::Item *value, void *info) { +static void configure_user_one(Array::Item *value, void *info) { Request& r=*static_cast(info); - Methoded *methoded=static_cast(value); - methoded->register_directly_used(r); + if(Methoded *methoded=static_cast(value)) + methoded->configure_user(r); } -void Methoded_array::register_directly_used(Request& r) { - for_each(register_one, &r); +void Methoded_array::configure_user(Request& r) { + for_each(configure_user_one, &r); } -// creator +static void register_one(Array::Item *value, void *info) { + Request& r=*static_cast(info); + if(Methoded *methoded=static_cast(value)) + methoded->register_directly_used(r); +} -void init_methoded_array(Pool& pool) { - methoded_array=new(pool) Methoded_array(pool); +void Methoded_array::register_directly_used(Request& r) { + for_each(register_one, &r); }