- iterator item(int depth, docstring const & str);
-};
-
-typedef Toc::const_iterator TocIterator;
-
-
-/// Caption-enabled TOC builders
-class TocBuilder
-{
-public:
- TocBuilder(shared_ptr<Toc> const toc);
- /// When entering a float
- void pushItem(DocIterator const & dit, docstring const & s,
- bool output_active, bool is_captioned = false);
- /// When encountering a caption
- void captionItem(DocIterator const & dit, docstring const & s,
- bool output_active);
- /// When exiting a float
- void pop();
-private:
- TocBuilder(){}
- ///
- struct frame {
- Toc::size_type pos;
- bool is_captioned;
- };
- ///
- shared_ptr<Toc> const toc_;
- ///
- std::stack<frame> stack_;
-};
-
-
-/// The ToC list.
-/// A class and no typedef because we want to forward declare it.
-class TocList : public std::map<std::string, shared_ptr<Toc> >
-{
-private:
- // this can create null pointers
- using std::map<std::string, shared_ptr<Toc> >::operator[];
-};
-
-
-///
-class TocBuilderStore
-{
-public:
- TocBuilderStore() {};
- ///
- shared_ptr<TocBuilder> get(std::string const & type, shared_ptr<Toc> toc);
- ///
- void clear() { map_.clear(); };
-private:
- typedef std::map<std::string, shared_ptr<TocBuilder> > map_t;
- map_t map_;
-};
-
-
-///
-/**
-*/
-class TocBackend
-{
-public: