--- parser3/src/classes/classes.C 2001/04/27 16:48:19 1.1 +++ parser3/src/classes/classes.C 2001/04/27 16:48:19 1.1.2.1 @@ -0,0 +1,50 @@ +/** @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.1.2.1 2001/04/27 16:48:19 paf Exp $ +*/ + +#include "m_base.h" + +// Methoded_array + +// global variable + +extern Methoded_array *methoded_array; + +// methods + +Methoded_array::Methoded_array(Pool& pool) : Array(pool) { +# include "classes.inc" +} + +static void configure_one(Array::Item *value, void *info) { + Request& r=*static_cast(info); + Methoded *methoded=static_cast(value); + methoded->configure(r); +} + +void Methoded_array::configure(Request& r) { + for_each(configure_one, &r); +} + +static void register_one(Array::Item *value, void *info) { + Request& r=*static_cast(info); + Methoded *methoded=static_cast(value); + methoded->register_directly_used(r); +} + +void Methoded_array::register_directly_used(Request& r) { + for_each(register_one, &r); +} + +// creator + +void init_methoded_array(Pool& pool) { + methoded_array=new(pool) Methoded_array(pool); +} +