Annotation of parser3/src/classes/classes.C, revision 1.12
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.12 ! paf 7: $Id: classes.C,v 1.11 2001/11/05 11:46:19 paf 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.12 ! paf 34: static_cast<Methoded *>(value)->configure_admin(r);
1.2 paf 35: }
36:
1.3 paf 37: void Methoded_array::configure_admin(Request& r) {
38: for_each(configure_admin_one, &r);
39: }
40:
41: static void configure_user_one(Array::Item *value, void *info) {
42: Request& r=*static_cast<Request *>(info);
1.12 ! paf 43: static_cast<Methoded *>(value)->configure_user(r);
1.3 paf 44: }
45:
46: void Methoded_array::configure_user(Request& r) {
47: for_each(configure_user_one, &r);
1.2 paf 48: }
49:
50: static void register_one(Array::Item *value, void *info) {
51: Request& r=*static_cast<Request *>(info);
1.12 ! paf 52: static_cast<Methoded *>(value)->register_directly_used(r);
1.2 paf 53: }
54:
55: void Methoded_array::register_directly_used(Request& r) {
56: for_each(register_one, &r);
57: }
58:
59: // creator
60:
61: void init_methoded_array(Pool& pool) {
62: methoded_array=new(pool) Methoded_array(pool);
63: }
E-mail: