--- parser3/src/include/pa_charsets.h 2002/02/08 08:30:12 1.5 +++ parser3/src/include/pa_charsets.h 2026/04/25 13:38:46 1.24 @@ -1,10 +1,8 @@ /** @file Parser: sql driver manager decl. - Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) - - $Id: pa_charsets.h,v 1.5 2002/02/08 08:30:12 paf Exp $ + Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian global sql driver manager, must be thread-safe @@ -13,19 +11,29 @@ #ifndef PA_CHARSETS_H #define PA_CHARSETS_H +#define IDENT_PA_CHARSETS_H "$Id: pa_charsets.h,v 1.24 2026/04/25 13:38:46 moko Exp $" + #include "pa_hash.h" +#include "pa_charset.h" -class Charsets : public Hash { +/// convention: use UPPERCASE keys +class Charsets: public HashString { public: - Charsets(Pool& apool); - ~Charsets(); - Charset& get_charset(const String& name); - void load_charset(const String& request_name, const String& request_file_spec); -}; + Charsets(); -/// global -extern Charsets *charsets; + Charset& get(String::Body ANAME); + Charset& get_direct(const char *ANAME); + + 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 pa_UTF8_charset; +extern Charsets pa_charsets; +//@} #endif