Annotation of parser3/src/types/pa_vresponse.C, revision 1.25
1.1 paf 1: /** @file
2: Parser: @b response class.
3:
1.25 ! paf 4: Copyright(c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com)
1.4 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.6 paf 6: */
1.1 paf 7:
1.25 ! paf 8: static const char * const IDENT_VRESPONSE_C="$Date: 2005/08/08 08:41:51 $";
1.1 paf 9:
10: #include "pa_vresponse.h"
1.18 paf 11: #include "pa_request_charsets.h"
1.1 paf 12: #include "pa_charsets.h"
13: #include "pa_charset.h"
14: #include "pa_vstring.h"
1.11 paf 15: #include "pa_vdate.h"
1.1 paf 16:
1.18 paf 17: Value* VResponse::get_element(const String& aname, Value& aself, bool looking_up) {
1.1 paf 18: // $charset
1.8 paf 19: if(aname==CHARSET_NAME)
1.18 paf 20: return new VString(*new String(fcharsets.client().NAME(), String::L_TAINTED));
1.8 paf 21:
22: // $method
1.18 paf 23: if(Value* result=VStateless_object::get_element(aname, aself, looking_up))
1.8 paf 24: return result;
25:
26: // $field
1.18 paf 27: return ffields.get(aname.change_case(fcharsets.source(), String::CC_LOWER));
1.1 paf 28: }
29:
1.24 paf 30: const VJunction* VResponse::put_element(Value& /*aself*/, const String& aname, Value* avalue, bool /*areplace*/) {
1.1 paf 31: // guard charset change
1.8 paf 32: if(aname==CHARSET_NAME)
1.18 paf 33: fcharsets.set_client(charsets.get(avalue->as_string().
34: change_case(UTF8_charset, String::CC_UPPER)));
1.2 paf 35: else
1.18 paf 36: ffields.put(
37: aname.change_case(fcharsets.source(), String::CC_LOWER),
38: avalue);
1.8 paf 39:
1.21 paf 40: return PUT_ELEMENT_REPLACED_ELEMENT;
1.11 paf 41: }
E-mail: