wibble 1.1
doc.h
Go to the documentation of this file.
1#ifndef WIBBLE_COMMANDLINE_DOC_H
2#define WIBBLE_COMMANDLINE_DOC_H
3
5#include <string>
6#include <vector>
7#include <ostream>
8
9namespace wibble {
10namespace commandline {
11
12class HelpWriter;
13
15{
16protected:
17 std::string m_app;
18 std::string m_ver;
19
20public:
21 DocMaker(const std::string& app, const std::string& ver)
22 : m_app(app), m_ver(ver) {}
23};
24
25class Help : public DocMaker
26{
27protected:
28 void outputOptions(std::ostream& out, HelpWriter& writer, const Engine& cp);
29
30public:
31 Help(const std::string& app, const std::string& ver)
32 : DocMaker(app, ver) {}
33
34 void outputVersion(std::ostream& out);
35 void outputHelp(std::ostream& out, const Engine& cp);
36};
37
38class Manpage : public DocMaker
39{
40public:
42
43private:
44 struct Hook
45 {
46 std::string section;
47 where placement;
48 std::string text;
49
50 Hook(const std::string& section, where placement, const std::string& text)
51 : section(section), placement(placement), text(text) {}
52 };
53
54 int m_section;
55 std::string m_author;
56
57 std::vector<Hook> hooks;
58 std::string lastSection;
59
60 void outputParagraph(std::ostream& out, const std::string& str);
61 void outputOption(std::ostream& out, const Option* o);
62 void outputOptions(std::ostream& out, const Engine& p);
63 void runHooks(std::ostream& out, const std::string& section, where where);
64 void startSection(std::ostream& out, const std::string& name);
65 void endSection(std::ostream& out);
66
67
68public:
69 Manpage(const std::string& app, const std::string& ver, int section, const std::string& author)
70 : DocMaker(app, ver), m_section(section), m_author(author) {}
71
72 void addHook(const std::string& section, where placement, const std::string& text)
73 {
74 hooks.push_back(Hook(section, placement, text));
75 }
76 void readHooks(const std::string& file);
77
78 void output(std::ostream& out, const Engine& cp);
79};
80
81}
82}
83
84// vim:set ts=4 sw=4:
85#endif
DocMaker(const std::string &app, const std::string &ver)
Definition doc.h:21
std::string m_app
Definition doc.h:17
std::string m_ver
Definition doc.h:18
Parse commandline options.
Definition engine.h:39
Definition doc.h:26
void outputHelp(std::ostream &out, const Engine &cp)
Definition doc.cpp:145
Help(const std::string &app, const std::string &ver)
Definition doc.h:31
void outputVersion(std::ostream &out)
Definition doc.cpp:140
void outputOptions(std::ostream &out, HelpWriter &writer, const Engine &cp)
Definition doc.cpp:77
Definition doc.h:39
void output(std::ostream &out, const Engine &cp)
Definition doc.cpp:326
where
Definition doc.h:41
@ END
Definition doc.h:41
@ BEFORE
Definition doc.h:41
@ BEGINNING
Definition doc.h:41
Manpage(const std::string &app, const std::string &ver, int section, const std::string &author)
Definition doc.h:69
void addHook(const std::string &section, where placement, const std::string &text)
Definition doc.h:72
void readHooks(const std::string &file)
Definition doc.cpp:409
Definition amorph.h:17
Definition amorph.h:30