--- parser3/src/include/pa_charsets.h 2003/11/20 16:34:24 1.11 +++ parser3/src/include/pa_charsets.h 2023/09/26 20:49:06 1.22 @@ -1,8 +1,8 @@ /** @file Parser: sql driver manager decl. - Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) + Copyright (c) 2001-2023 Art. Lebedev Studio (http://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian global sql driver manager, must be thread-safe @@ -11,25 +11,29 @@ #ifndef PA_CHARSETS_H #define PA_CHARSETS_H -static const char * const IDENT_CHARSETS_H="$Date: 2003/11/20 16:34:24 $"; +#define IDENT_PA_CHARSETS_H "$Id: pa_charsets.h,v 1.22 2023/09/26 20:49:06 moko Exp $" #include "pa_hash.h" #include "pa_charset.h" /// convention: use UPPERCASE keys -class Charsets: public Hash { +class Charsets: public HashString { public: Charsets(); - Charset& get(const String::Body ANAME); + Charset& get(String::Body ANAME); + Charset& get_direct(const char *ANAME); - void load_charset(Request_charsets& charsets, const String::Body ANAME, const String& afile_spec); + void load_charset(Request_charsets& charsets, String::Body ANAME, const String& afile_spec); + + // detects charset if it's not enforced, skips BOM signature if it complies charset + static Charset* checkBOM(char *&body,size_t &body_size, Charset* enforced_charset); }; //@{ globals -extern Charset UTF8_charset; -extern Charsets charsets; +extern Charset pa_UTF8_charset; +extern Charsets pa_charsets; //@} #endif