diff options
author | Michi Henning <michi@zeroc.com> | 2007-01-08 08:02:53 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2007-01-08 08:02:53 +0000 |
commit | a83f822a46fa5f9a26bf52575d9b0be4748ded96 (patch) | |
tree | 998b3069bf7a2dea646a9ddc7e773b1a51019c4b /cpp/src/slice2html/Gen.h | |
parent | Added ObejctAdapter::destroy (diff) | |
download | ice-a83f822a46fa5f9a26bf52575d9b0be4748ded96.tar.bz2 ice-a83f822a46fa5f9a26bf52575d9b0be4748ded96.tar.xz ice-a83f822a46fa5f9a26bf52575d9b0be4748ded96.zip |
Added TOC generation to slice2html.
Diffstat (limited to 'cpp/src/slice2html/Gen.h')
-rw-r--r-- | cpp/src/slice2html/Gen.h | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/cpp/src/slice2html/Gen.h b/cpp/src/slice2html/Gen.h index a4a2ad1edbc..843f010bb02 100644 --- a/cpp/src/slice2html/Gen.h +++ b/cpp/src/slice2html/Gen.h @@ -16,7 +16,8 @@ namespace Slice { -void generate(const UnitPtr&, const ::std::string&, const ::std::string&, const ::std::string&, unsigned, unsigned); +void generate(const UnitPtr&, const ::std::string&, const ::std::string&, const ::std::string&, const std::string&, + const ::std::string&, unsigned, unsigned); typedef ::std::set< ::std::string> Files; @@ -35,7 +36,7 @@ protected: GeneratorBase(::IceUtil::XMLOutput&, const Files&); virtual ~GeneratorBase() = 0; - void openDoc(const ::std::string&, const std::string&); + void openDoc(const ::std::string&, const std::string&, const std::string& = "", const std::string& = ""); void openDoc(const ContainedPtr&); void closeDoc(); @@ -71,6 +72,8 @@ private: static void makeDir(const ::std::string&); static ::std::string readFile(const ::std::string&); static void readFile(const ::std::string&, ::std::string&, ::std::string&); + static void getHeaders(const ::std::string&, ::std::string&, ::std::string&); + static ::std::string getFooter(const ::std::string&); const Files& _files; @@ -78,14 +81,17 @@ private: static ::std::string _header1; static ::std::string _header2; static ::std::string _footer; + static ::std::string _indexHeader1; + static ::std::string _indexHeader2; + static ::std::string _indexFooter; }; -class IndexGenerator : private GeneratorBase +class StartPageGenerator : private GeneratorBase { public: - IndexGenerator(const Files&); - ~IndexGenerator(); + StartPageGenerator(const Files&); + ~StartPageGenerator(); void generate(const ModulePtr&); private: @@ -95,11 +101,11 @@ private: ::IceUtil::XMLOutput _out; }; -class TypesVisitor : private ::IceUtil::noncopyable, public ParserVisitor +class FileVisitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - TypesVisitor(Files&); + FileVisitor(Files&); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); @@ -116,18 +122,49 @@ private: Files& _files; }; -class IndexVisitor : private ::IceUtil::noncopyable, public ParserVisitor +class StartPageVisitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - IndexVisitor(const Files&); + StartPageVisitor(const Files&); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); private: - IndexGenerator _ig; + StartPageGenerator _spg; +}; + +class TOCGenerator : private GeneratorBase +{ +public: + + TOCGenerator(const Files&, const ::std::string&, const ::std::string&); + ~TOCGenerator(); + void generate(const ModulePtr&); + +private: + + void writeTOC(); + void writeEntry(const ContainedPtr&); + + ModuleList _modules; + ::IceUtil::XMLOutput _out; +}; + +class TOCVisitor : private ::IceUtil::noncopyable, public ParserVisitor +{ +public: + + TOCVisitor(const Files&, const ::std::string&, const ::std::string&); + + virtual bool visitUnitStart(const UnitPtr&); + virtual bool visitModuleStart(const ModulePtr&); + +private: + + TOCGenerator _tg; }; class ModuleGenerator : private GeneratorBase @@ -140,7 +177,6 @@ public: private: virtual void visitContainer(const ContainerPtr&); - }; class ExceptionGenerator : private GeneratorBase @@ -175,11 +211,11 @@ public: void generate(const EnumPtr&); }; -class Visitor : private ::IceUtil::noncopyable, public ParserVisitor +class PageVisitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - Visitor(const Files&); + PageVisitor(const Files&); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); |