class Poco::Util::HelpFormatter

Overview

This class formats a help message from an OptionSet. More…

#include <HelpFormatter.h>

class HelpFormatter
{
public:
    // construction

    HelpFormatter(const OptionSet& options);

    // methods

    void
    setCommand(const std::string& command);

    const std::string&
    getCommand() const;

    void
    setUsage(const std::string& usage);

    const std::string&
    getUsage() const;

    void
    setHeader(const std::string& header);

    const std::string&
    getHeader() const;

    void
    setFooter(const std::string& footer);

    const std::string&
    getFooter() const;

    void
    format(std::ostream& ostr) const;

    void
    setWidth(int width);

    int
    getWidth() const;

    void
    setIndent(int indent);

    int
    getIndent() const;

    void
    setAutoIndent();

    void
    setUnixStyle(bool flag);

    bool
    isUnixStyle() const;

    std::string
    shortPrefix() const;

    std::string
    longPrefix() const;

protected:
    // methods

    int
    calcIndent() const;

    void
    formatOptions(std::ostream& ostr) const;

    void
    formatOption(
        std::ostream& ostr,
        const Option& option,
        int width
        ) const;

    void
    formatText(
        std::ostream& ostr,
        const std::string& text,
        int indent
        ) const;

    void
    formatText(
        std::ostream& ostr,
        const std::string& text,
        int indent,
        int firstIndent
        ) const;

    void
    formatWord(
        std::ostream& ostr,
        int& pos,
        const std::string& word,
        int indent
        ) const;

    void
    clearWord(
        std::ostream& ostr,
        int& pos,
        std::string& word,
        int indent
        ) const;
};

Detailed Documentation

This class formats a help message from an OptionSet.

Construction

HelpFormatter(const OptionSet& options)

Creates the HelpFormatter, using the given options.

The HelpFormatter just stores a reference to the given OptionSet, so the OptionSet must not be destroyed during the lifetime of the HelpFormatter.

Methods

void
setCommand(const std::string& command)

Sets the command name.

const std::string&
getCommand() const

Returns the command name.

void
setUsage(const std::string& usage)

Sets the usage string.

const std::string&
getUsage() const

Returns the usage string.

void
setHeader(const std::string& header)

Sets the header string.

const std::string&
getHeader() const

Returns the header string.

void
setFooter(const std::string& footer)

Sets the footer string.

const std::string&
getFooter() const

Returns the footer string.

void
format(std::ostream& ostr) const

Writes the formatted help text to the given stream.

void
setWidth(int width)

Sets the line width for the formatted help text.

int
getWidth() const

Returns the line width for the formatted help text.

The default width is 72.

void
setIndent(int indent)

Sets the indentation for description continuation lines.

int
getIndent() const

Returns the indentation for description continuation lines.

void
setAutoIndent()

Sets the indentation for description continuation lines so that the description text is left-aligned.

void
setUnixStyle(bool flag)

Enables Unix-style options.

Both short and long option names are printed if Unix-style is set. Otherwise, only long option names are printed.

After calling setUnixStyle(), setAutoIndent() should be called as well to ensure proper help text formatting.

bool
isUnixStyle() const

Returns if Unix-style options are set.

std::string
shortPrefix() const

Returns the platform-specific prefix for short options.

“-” on Unix, “/” on Windows and OpenVMS.

std::string
longPrefix() const

Returns the platform-specific prefix for long options.

“–” on Unix, “/” on Windows and OpenVMS.

int
calcIndent() const

Calculates the indentation for the option descriptions from the given options.

void
formatOptions(std::ostream& ostr) const

Formats all options.

void
formatOption(
    std::ostream& ostr,
    const Option& option,
    int width
    ) const

Formats an option, using the platform-specific prefixes.

void
formatText(
    std::ostream& ostr,
    const std::string& text,
    int indent
    ) const

Formats the given text.

void
formatText(
    std::ostream& ostr,
    const std::string& text,
    int indent,
    int firstIndent
    ) const

Formats the given text.

void
formatWord(
    std::ostream& ostr,
    int& pos,
    const std::string& word,
    int indent
    ) const

Formats the given word.

void
clearWord(
    std::ostream& ostr,
    int& pos,
    std::string& word,
    int indent
    ) const

Formats and then clears the given word.