Annotation of parser3/src/classes/classes.C, revision 1.1.2.2
1.1.2.1 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.1.2.2 ! paf 8: $Id: classes.C,v 1.1.2.1 2001/04/27 16:48:19 paf Exp $
1.1.2.1 paf 9: */
10:
1.1.2.2 ! paf 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: }
1.1.2.1 paf 20:
21: // Methoded_array
22:
23: // global variable
24:
1.1.2.2 ! paf 25: Methoded_array *methoded_array;
1.1.2.1 paf 26:
27: // methods
28:
1.1.2.2 ! paf 29: Methoded_array::Methoded_array(Pool& apool) : Array(apool) {
1.1.2.1 paf 30: # include "classes.inc"
31: }
32:
33: static void configure_one(Array::Item *value, void *info) {
34: Request& r=*static_cast<Request *>(info);
35: Methoded *methoded=static_cast<Methoded *>(value);
36: methoded->configure(r);
37: }
38:
39: void Methoded_array::configure(Request& r) {
40: for_each(configure_one, &r);
41: }
42:
43: static void register_one(Array::Item *value, void *info) {
44: Request& r=*static_cast<Request *>(info);
45: Methoded *methoded=static_cast<Methoded *>(value);
46: methoded->register_directly_used(r);
47: }
48:
49: void Methoded_array::register_directly_used(Request& r) {
50: for_each(register_one, &r);
51: }
52:
53: // creator
54:
55: void init_methoded_array(Pool& pool) {
56: methoded_array=new(pool) Methoded_array(pool);
57: }
E-mail: