haiku/headers/build/private/textencoding/CharacterSetRoster.h

92 lines
3.1 KiB
C++

#ifndef CHARACTER_SET_ROSTER_H
#define CHARACTER_SET_ROSTER_H
#include <SupportDefs.h>
#include <Messenger.h>
namespace BPrivate {
/**
* @file BCharacterSetRoster.h
* @author Andrew Bachmann
* @brief Defines BCharacterSetRoster
*
* @see BCharacterSet.h
**/
class BCharacterSet;
class BCharacterSetRoster {
/**
* @class BCharacterSetRoster
* @brief An object for finding or enumerating character sets
**/
public:
/**
* @brief initialize the roster to the first character set
**/
BCharacterSetRoster();
virtual ~BCharacterSetRoster();
/**
* @brief get the next available character set
* @return B_NO_ERROR if it's valid, B_BAD_VALUE if it is not
**/
status_t GetNextCharacterSet(BCharacterSet * charset);
/**
* @brief resets the iterator to the first character set
* @return B_NO_ERROR if it's valid, B_BAD_VALUE if it is not
**/
status_t RewindCharacterSets();
/**
* @brief register BMessenger to receive notifications of character set events
* @return B_NO_ERROR if watching was okay, B_BAD_VALUE if poorly formed BMessenger
**/
static status_t StartWatching(BMessenger target);
/**
* @brief stop sending notifications to BMessenger
* @return B_NO_ERROR if stopping went okay, B_BAD_VALUE if poorly formed BMessenger
**/
static status_t StopWatching(BMessenger target);
/**
* @brief return the character set with the given font id, or NULL if none exists
* This function executes in constant time.
* @return the character set with the given font id, or NULL if none exists
**/
static const BCharacterSet * GetCharacterSetByFontID(uint32 id);
/**
* @brief return the character set with the given conversion id, or NULL if none exists
* This function executes in constant time.
* @return the character set with the given conversion id, or NULL if none exists
**/
static const BCharacterSet * GetCharacterSetByConversionID(uint32 id);
/**
* @brief return the character set with the given MIB enum, or NULL if none exists
* This function executes in constant time.
* @return the character set with the given MIB enum, or NULL if none exists
**/
static const BCharacterSet * GetCharacterSetByMIBenum(uint32 MIBenum);
/**
* @brief return the character set with the given print name, or NULL if none exists
* This function executes in linear time.
* @return the character set with the given print name, or NULL if none exists
**/
static const BCharacterSet * FindCharacterSetByPrintName(const char * name);
/**
* @brief return the character set with the given name, or NULL if none exists
* This function will match aliases as well.
* This function executes in linear time.
* @return the character set with the given name, or NULL if none exists
**/
static const BCharacterSet * FindCharacterSetByName(const char * name);
private:
uint32 index; //! the state variable for iteration
};
}
#endif // CHARACTER_SET_ROSTER_H