diff --git a/headers/private/textencoding/CharacterSet.h b/headers/private/textencoding/CharacterSet.h new file mode 100644 index 0000000000..2df290e897 --- /dev/null +++ b/headers/private/textencoding/CharacterSet.h @@ -0,0 +1,89 @@ +#ifndef CHARACTER_SET_H +#define CHARACTER_SET_H + +#include + +namespace BPrivate { + +/** + * @file CharacterSet.h + * @author Andrew Bachmann + * @brief Defines BCharacterSet + * + * @see http://www.iana.org/assignments/character-sets + **/ + +class BCharacterSet { + /** + * @class BCharacterSet + * @brief An object holding a variety of useful information about a character set. + * + * This information has been derived from the IANA standards organization. + * Since IANA provides several names for some encodings, this object also + * provides for aliases. + **/ +public: + /** + * @brief default constructor, for stack allocated character set objects + **/ + BCharacterSet(); + /** + * @brief constructor, for internal use only + **/ + BCharacterSet(uint32 id, uint32 MIBenum, const char * print_name, + const char * iana_name, const char * mime_name, + const char ** aliases); + /** + * @brief returns an id for use in BFont::SetEncoding + * @return an id for use in BFont::SetEncoding + **/ + uint32 GetFontID(void) const; + /** + * @brief returns an id for use in convert_to/from_utf8 + * @return an id for use in convert_to/from_utf8 + **/ + uint32 GetConversionID(void) const; + /** + * @brief returns an id for use in MIBs to identify coded character sets + * @return an id for use in MIBs to identify coded character sets + **/ + uint32 GetMIBenum(void) const; + /** + * @brief returns the IANA standard name for this character set + * @return the IANA standard name for this character set + **/ + const char * GetName(void) const; + /** + * @brief returns a user interface friendly name for this character set + * @return a user interface friendly name for this character set + **/ + const char * GetPrintName(void) const; + /** + * @brief returns the MIME preferred name for this character set, or null if none exists + * @return the MIME preferred name for this character set, or null if none exists + **/ + const char * GetMIMEName(void) const; + /** + * @brief returns the number of aliases for this character set + * @return the number of aliases for this character set + **/ + int32 CountAliases(void) const; + /** + * @brief returns the index'th alias, or NULL if out of range + * @return the index'th alias, or NULL if out of range + **/ + const char * AliasAt(uint32 index) const; + +private: + uint32 id; //! id from convert_to_utf8/convert_from_utf8 + uint32 MIBenum; //! for use in MIBs to identify coded character sets + const char * print_name; //! user interface friendly name + const char * iana_name; //! standard IANA name + const char * mime_name; //! the preferred mime name + const char ** aliases; //! aliases for this character set + uint32 aliases_count; //! how many aliases are available +}; + +} + +#endif CHARACTER_SET_H