Annotation of parser3/src/classes/classes.C, revision 1.11
1.2 paf 1: /** @file
2: Parser: @b Methoded and Methoded_array classes.
3:
4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.11 ! paf 5: Author: Alexander Petrosyan <paf@design.ru> (http://paf.design.ru)
1.2 paf 6:
1.11 ! paf 7: $Id: classes.C,v 1.10 2001/09/26 13:39:57 parser Exp $
1.2 paf 8: */
9:
10: #include "classes.h"
11: #include "pa_request.h"
12:
13: // Methoded
14:
15: void Methoded::register_directly_used(Request& r) {
16: if(used_directly())
17: r.classes().put(name(), this);
18: }
19:
20: // Methoded_array
21:
22: // global variable
23:
24: Methoded_array *methoded_array;
25:
26: // methods
27:
28: Methoded_array::Methoded_array(Pool& apool) : Array(apool) {
29: # include "classes.inc"
30: }
31:
1.3 paf 32: static void configure_admin_one(Array::Item *value, void *info) {
1.2 paf 33: Request& r=*static_cast<Request *>(info);
1.10 parser 34: if(Methoded *methoded=static_cast<Methoded *>(value))
35: methoded->configure_admin(r);
1.2 paf 36: }
37:
1.3 paf 38: void Methoded_array::configure_admin(Request& r) {
39: for_each(configure_admin_one, &r);
40: }
41:
42: static void configure_user_one(Array::Item *value, void *info) {
43: Request& r=*static_cast<Request *>(info);
1.8 parser 44: if(Methoded *methoded=static_cast<Methoded *>(value))
45: methoded->configure_user(r);
1.3 paf 46: }
47:
48: void Methoded_array::configure_user(Request& r) {
49: for_each(configure_user_one, &r);
1.2 paf 50: }
51:
52: static void register_one(Array::Item *value, void *info) {
53: Request& r=*static_cast<Request *>(info);
1.8 parser 54: if(Methoded *methoded=static_cast<Methoded *>(value))
55: methoded->register_directly_used(r);
1.2 paf 56: }
57:
58: void Methoded_array::register_directly_used(Request& r) {
59: for_each(register_one, &r);
60: }
61:
62: // creator
63:
64: void init_methoded_array(Pool& pool) {
65: methoded_array=new(pool) Methoded_array(pool);
66: }
E-mail: