Annotation of parser3/src/classes/classes.C, revision 1.34
1.24 misha 1: /** @file
2: Parser: @b Methoded and Methoded_array classes.
3:
1.33 moko 4: Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com)
1.32 moko 5: Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru>
1.24 misha 6: */
7:
8: #include "classes.h"
9: #include "pa_request.h"
10:
1.34 ! moko 11: volatile const char * IDENT_CLASSES_C="$Id: classes.C,v 1.33 2024/11/04 03:53:25 moko Exp $" IDENT_CLASSES_H;
1.25 moko 12:
1.24 misha 13: // Methoded
14:
15: void Methoded::register_directly_used(Request& r) {
1.29 moko 16: if(used_directly())
17: r.put_class(this);
1.24 misha 18:
19: // prevent system classes from modification [calling set_method]
20: // ^process[$string:CLASS]{@method} prohibited from now on...
21: this->lock();
22: }
23:
24: // Methoded_array
25:
26: // global variable
27:
28: Methoded_array& methoded_array() {
29: static Methoded_array* result=0;
30: if(!result)
31: result=new Methoded_array;
32:
33: return *result;
34: }
35:
36: // methods
37:
38: Methoded_array::Methoded_array() {
1.34 ! moko 39: ADD_CLASS_VAR(array)
! 40: ADD_CLASS_VAR(bool)
! 41: ADD_CLASS_VAR(curl)
! 42: ADD_CLASS_VAR(date)
! 43: ADD_CLASS_VAR(double)
! 44: ADD_CLASS_VAR(file)
! 45: ADD_CLASS_VAR(form)
! 46: ADD_CLASS_VAR(hash)
! 47: ADD_CLASS_VAR(hashfile)
! 48: ADD_CLASS_VAR(image)
! 49: ADD_CLASS_VAR(inet)
! 50: ADD_CLASS_VAR(int)
! 51: ADD_CLASS_VAR(json)
! 52: ADD_CLASS_VAR(mail)
! 53: ADD_CLASS_VAR(math)
! 54: ADD_CLASS_VAR(memcached)
! 55: ADD_CLASS_VAR(memory)
! 56: ADD_CLASS_VAR(reflection)
! 57: ADD_CLASS_VAR(regex)
! 58: ADD_CLASS_VAR(response)
! 59: ADD_CLASS_VAR(string)
! 60: ADD_CLASS_VAR(table)
! 61: ADD_CLASS_VAR(void)
! 62: ADD_CLASS_VAR(xnode) // should be before xdoc
! 63: ADD_CLASS_VAR(xdoc)
1.24 misha 64: }
65:
66: static void configure_admin_one(Methoded_array::element_type methoded, Request *r) {
1.27 moko 67: methoded->configure_admin(*r);
1.24 misha 68: }
69: void Methoded_array::configure_admin(Request& r) {
70: for_each(configure_admin_one, &r);
71: }
72:
73: static void configure_user_one(Methoded_array::element_type methoded, Request *r) {
1.27 moko 74: methoded->configure_user(*r);
1.24 misha 75: }
76: void Methoded_array::configure_user(Request& r) {
77: for_each(configure_user_one, &r);
78: }
79:
80: static void register_one(Methoded_array::element_type methoded, Request *r) {
1.27 moko 81: methoded->register_directly_used(*r);
1.24 misha 82: }
83: void Methoded_array::register_directly_used(Request& r) {
84: for_each(register_one, &r);
85: }
E-mail: