--- parser3/src/main/pa_request.C 2002/10/15 08:31:57 1.234 +++ parser3/src/main/pa_request.C 2002/10/31 12:22:13 1.236.4.1 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_REQUEST_C="$Date: 2002/10/15 08:31:57 $"; +static const char* IDENT_REQUEST_C="$Date: 2002/10/31 12:22:13 $"; #include "pa_sapi.h" #include "pa_common.h" @@ -68,7 +68,7 @@ Request::Request(Pool& apool, #ifdef RESOURCES_DEBUG , sql_connect_time(0),sql_request_time(0) #endif - , self(0), method_frame(0), rcontext(0), wcontext(0) + , method_frame(0), rcontext(0), wcontext(0) { // default charsets pool().set_source_charset(*utf8_charset); @@ -79,7 +79,7 @@ Request::Request(Pool& apool, /// directly used // MAIN class, operators - classes().put(*NEW String(pool(), MAIN_CLASS_NAME), &main_class); + classes().put(main_class.name(), &main_class); // classes: // table, file, random, mail, image, ... methoded_array->register_directly_used(*this); @@ -118,6 +118,8 @@ Request::~Request() { #endif } +Value *Request::get_self() { return method_frame?&method_frame->self():0; } + static void load_charset(const Hash::Key& akey, Hash::Val *avalue, void *) { charsets->load_charset(akey, static_cast(avalue)->as_string()); } @@ -136,7 +138,7 @@ void Request::configure_admin(VStateless ... ] */ - if(Value *vcharsets=conf_class.get_element(*charsets_name, &conf_class, false)) { + if(Value *vcharsets=conf_class.get_element(*charsets_name, conf_class, false)) { if(Hash *charsets=vcharsets->get_hash(0)) charsets->for_each(load_charset); else if(!vcharsets->get_string()) @@ -227,7 +229,7 @@ gettimeofday(&mt[0],NULL); methoded_array->configure_user(*this); // $MAIN:MIME-TYPES - if(Value *element=main_class.get_element(*mime_types_name, &main_class, false)) + if(Value *element=main_class.get_element(*mime_types_name, main_class, false)) if(Table *table=element->get_table()) mime_types=table; @@ -261,7 +263,7 @@ gettimeofday(&mt[2],NULL); // @postprocess if(Value *value=main_class.get_element( *NEW String(pool(), POST_PROCESS_METHOD_NAME), - &main_class, + main_class, false)) if(Junction *junction=value->get_junction()) if(const Method *method=junction->method) { @@ -356,7 +358,7 @@ t[9]-t[3] // in a gracefull way... if(Value *value=main_class.get_element( *NEW String(pool(), UNHANDLED_EXCEPTION_METHOD_NAME), - &main_class, + main_class, false)) { if(Junction *junction=value->get_junction()) { if(const Method *method=junction->method) { @@ -455,7 +457,7 @@ VStateless_class *Request::use_file(VSta file_spec=&absolute(file_name); else { file_spec=0; - if(Value *element=main_class.get_element(*class_path_name, &main_class, false)) { + if(Value *element=main_class.get_element(*class_path_name, main_class, false)) { if(element->is_string()) { file_spec=file_readable(absolute(element->as_string()), file_name); // found at class_path? } else if(Table *table=element->get_table()) { @@ -626,5 +628,5 @@ const String& Request::mime_type_of(cons } bool Request::origins_mode() { - return main_class.get_element(*origins_mode_name, &main_class, false)!=0; // $ORIGINS mode + return main_class.get_element(*origins_mode_name, main_class, false)!=0; // $ORIGINS mode }