|
|
| version 1.26, 2015/10/26 01:21:53 | version 1.35, 2024/11/11 05:50:09 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: @b Methoded and Methoded_array classes. | Parser: @b Methoded and Methoded_array classes. |
| Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com) | Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com) |
| Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) | Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru> |
| */ | */ |
| #include "classes.h" | #include "classes.h" |
| Line 13 volatile const char * IDENT_CLASSES_C="$ | Line 13 volatile const char * IDENT_CLASSES_C="$ |
| // Methoded | // Methoded |
| void Methoded::register_directly_used(Request& r) { | void Methoded::register_directly_used(Request& r) { |
| if(used_directly()) { | if(used_directly()) |
| r.classes().put(name(), this); | r.put_class(this); |
| } | |
| // prevent system classes from modification [calling set_method] | // prevent system classes from modification [calling set_method] |
| // ^process[$string:CLASS]{@method} prohibited from now on... | // ^process[$string:CLASS]{@method} prohibited from now on... |
| Line 37 Methoded_array& methoded_array() { | Line 36 Methoded_array& methoded_array() { |
| // methods | // methods |
| Methoded_array::Methoded_array() { | Methoded_array::Methoded_array() { |
| # include "classes.inc" | ADD_CLASS_VAR(array) |
| ADD_CLASS_VAR(bool) | |
| ADD_CLASS_VAR(curl) | |
| ADD_CLASS_VAR(date) | |
| ADD_CLASS_VAR(double) | |
| ADD_CLASS_VAR(file) | |
| ADD_CLASS_VAR(form) | |
| ADD_CLASS_VAR(hash) | |
| ADD_CLASS_VAR(hashfile) | |
| ADD_CLASS_VAR(image) | |
| ADD_CLASS_VAR(inet) | |
| ADD_CLASS_VAR(int) | |
| ADD_CLASS_VAR(json) | |
| ADD_CLASS_VAR(mail) | |
| ADD_CLASS_VAR(math) | |
| ADD_CLASS_VAR(memcached) | |
| ADD_CLASS_VAR(memory) | |
| ADD_CLASS_VAR(reflection) | |
| ADD_CLASS_VAR(regex) | |
| ADD_CLASS_VAR(response) | |
| ADD_CLASS_VAR(string) | |
| ADD_CLASS_VAR(table) | |
| ADD_CLASS_VAR(void) | |
| #ifdef XML | |
| ADD_CLASS_VAR(xnode) // should be before xdoc | |
| ADD_CLASS_VAR(xdoc) | |
| #endif | |
| } | } |
| static void configure_admin_one(Methoded_array::element_type methoded, Request *r) { | static void configure_admin_one(Methoded_array::element_type methoded, Request *r) { |
| if(methoded) | methoded->configure_admin(*r); |
| methoded->configure_admin(*r); | |
| } | } |
| void Methoded_array::configure_admin(Request& r) { | void Methoded_array::configure_admin(Request& r) { |
| for_each(configure_admin_one, &r); | for_each(configure_admin_one, &r); |
| } | } |
| static void configure_user_one(Methoded_array::element_type methoded, Request *r) { | static void configure_user_one(Methoded_array::element_type methoded, Request *r) { |
| if(methoded) | methoded->configure_user(*r); |
| methoded->configure_user(*r); | |
| } | } |
| void Methoded_array::configure_user(Request& r) { | void Methoded_array::configure_user(Request& r) { |
| for_each(configure_user_one, &r); | for_each(configure_user_one, &r); |
| } | } |
| static void register_one(Methoded_array::element_type methoded, Request *r) { | static void register_one(Methoded_array::element_type methoded, Request *r) { |
| if(methoded) | methoded->register_directly_used(*r); |
| methoded->register_directly_used(*r); | |
| } | } |
| void Methoded_array::register_directly_used(Request& r) { | void Methoded_array::register_directly_used(Request& r) { |
| for_each(register_one, &r); | for_each(register_one, &r); |