Annotation of parser3/src/classes/classes.C, revision 1.7
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.7 ! parser 8: $Id: classes.C,v 1.6 2001/05/21 16:01:10 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);
56: methoded->register_directly_used(r);
57: }
58:
59: void Methoded_array::register_directly_used(Request& r) {
60: for_each(register_one, &r);
61: }
62:
63: // creator
64:
65: void init_methoded_array(Pool& pool) {
66: methoded_array=new(pool) Methoded_array(pool);
67: }
E-mail: