--- parser3/src/main/pa_charsets.C 2003/01/28 11:46:45 1.11.2.3 +++ parser3/src/main/pa_charsets.C 2003/03/18 15:14:18 1.11.2.10.2.1 @@ -1,42 +1,47 @@ /** @file Parser: sql driver manager implementation. - Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_CHARSETS_C="$Date: 2003/01/28 11:46:45 $"; +static const char* IDENT_CHARSETS_C="$Date: 2003/03/18 15:14:18 $"; #include "pa_charsets.h" -// statics +// defines for globals + +#define CHARSET_UTF8_NAME "UTF-8" // globals +CharsetPtr UTF8_charset(new Charset(String* (new String(CHARSET_UTF8_NAME)), + 0/*no file=system*/)); + Charsets charsets; -// +// methods Charsets::Charsets() { put(UTF8_charset->name(), UTF8_charset); } -CharsetPtr Charsets::get(ConstStringPtr aname) { +Charset& Charsets::get(const String& aname) { if(CharsetPtr result=Hash::get(aname)) - return result; + return *result.get(); else throw Exception("parser.runtime", aname, "unknown charset"); } -void Charsets::load_charset(ConstStringPtr arequest_name, ConstStringPtr arequest_file_spec) { +void Charsets::load_charset(const String& arequest_name, const String& arequest_file_spec) { //we know that charset? - if(get(arequest_name)) + if(Hash::get(arequest_name)) return; // don't load it then // make global_name string on cache_pool pool - StringPtr global_name(new String(arequest_name->cstr(charsets_pool))); + const String& global_name(new String(arequest_name->cstr(charsets_pool))); put(global_name, value_type(new Charset(global_name, arequest_file_spec))); }