\documentclass[twoside]{book}

% Packages required by doxygen
\usepackage{fixltx2e}
\usepackage{calc}
\usepackage{doxygen}
\usepackage[export]{adjustbox} % also loads graphicx
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{multirow}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage[table]{xcolor}

% Font selection
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{amssymb}
\usepackage{sectsty}
\renewcommand{\familydefault}{\sfdefault}
\allsectionsfont{%
  \fontseries{bc}\selectfont%
  \color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
  \fontseries{bc}\selectfont%
  \color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}

% Page & text layout
\usepackage{geometry}
\geometry{%
  a4paper,%
  top=2.5cm,%
  bottom=2.5cm,%
  left=2.5cm,%
  right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\setlength{\parskip}{3ex plus 2ex minus 2ex}
\makeatletter
\renewcommand{\paragraph}{%
  \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
    \normalfont\normalsize\bfseries\SS@parafont%
  }%
}
\renewcommand{\subparagraph}{%
  \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
    \normalfont\normalsize\bfseries\SS@subparafont%
  }%
}
\makeatother

% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{}}
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
  \markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
  \markright{\thesection\ #1}%
}

% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex

% Custom commands
\newcommand{\clearemptydoublepage}{%
  \newpage{\pagestyle{empty}\cleardoublepage}%
}

\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}

%===== C O N T E N T S =====

\begin{document}

% Titlepage & ToC
\pagenumbering{roman}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large Cpp\+C\+MS }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.8.11}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}

%--- Begin generated contents ---
\chapter{Cpp\+C\+MS -\/ C++ Web Development Framework}
\label{index}\input{index}
\chapter{New in Cpp\+C\+MS 1.2}
\label{v1_2}
\input{v1_2}
\chapter{New A\+PI by Version}
\label{new_api}
\input{new_api}
\chapter{Examples}
\label{examples_page}
\input{examples_page}
\chapter{Deprecated List}
\label{deprecated}
\input{deprecated}
\chapter{Module Index}
\input{modules}
\chapter{Namespace Index}
\input{namespaces}
\chapter{Hierarchical Index}
\input{hierarchy}
\chapter{Class Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Module Documentation}
\input{group__capi__session}
\include{group__capi__session__expiration}
\include{group__capi__session__error__handling}
\include{group__cppcms__capi__session__pool}
\include{group__cppcms__capi__session__pool__init__from__json}
\include{group__cppcms__capi__session__cookie}
\include{group__collation}
\include{group__convert}
\include{group__date__time}
\include{group__codepage}
\include{group__format}
\include{group__manipulators}
\include{group__message}
\chapter{Namespace Documentation}
\input{namespacebooster}
\input{namespacebooster_1_1aio}
\input{namespacebooster_1_1aio_1_1aio__error}
\input{namespacebooster_1_1locale}
\input{namespacebooster_1_1locale_1_1as}
\input{namespacebooster_1_1locale_1_1conv}
\input{namespacebooster_1_1locale_1_1flags}
\input{namespacebooster_1_1locale_1_1gnu__gettext}
\input{namespacebooster_1_1locale_1_1period}
\input{namespacebooster_1_1locale_1_1period_1_1marks}
\input{namespacebooster_1_1locale_1_1time__zone}
\input{namespacebooster_1_1locale_1_1utf}
\input{namespacebooster_1_1locale_1_1util}
\input{namespacebooster_1_1log}
\input{namespacebooster_1_1log_1_1sinks}
\input{namespacebooster_1_1nowide}
\input{namespacebooster_1_1stack__trace}
\input{namespacebooster_1_1system}
\input{namespacecppcms}
\input{namespacecppcms_1_1app}
\input{namespacecppcms_1_1b64url}
\input{namespacecppcms_1_1crypto}
\input{namespacecppcms_1_1encoding}
\input{namespacecppcms_1_1filters}
\input{namespacecppcms_1_1http}
\input{namespacecppcms_1_1json}
\input{namespacecppcms_1_1plugin}
\input{namespacecppcms_1_1rpc}
\input{namespacecppcms_1_1sessions}
\input{namespacecppcms_1_1util}
\input{namespacecppcms_1_1views}
\input{namespacecppcms_1_1widgets}
\input{namespacecppcms_1_1xss}
\chapter{Class Documentation}
\input{classcppcms_1_1http_1_1abort__upload}
\input{classbooster_1_1locale_1_1abstract__calendar}
\input{classbooster_1_1aio_1_1acceptor}
\input{classcppcms_1_1base__content_1_1app__guard}
\input{classcppcms_1_1application}
\input{classcppcms_1_1application__specific__pool}
\input{classcppcms_1_1applications__pool}
\input{classcppcms_1_1archive}
\input{classcppcms_1_1archive__error}
\input{structcppcms_1_1archive__traits}
\input{classbooster_1_1atomic__counter}
\input{classbooster_1_1backtrace}
\input{classbooster_1_1bad__callback__call}
\input{classbooster_1_1bad__cast}
\input{classbooster_1_1bad__function__call}
\input{classbooster_1_1nowide_1_1bad__utf}
\input{classcppcms_1_1json_1_1bad__value__cast}
\input{classbooster_1_1bad__weak__ptr}
\input{classcppcms_1_1filters_1_1base64__urlencode}
\input{classcppcms_1_1base__content}
\input{classbooster_1_1locale_1_1util_1_1base__converter}
\input{classcppcms_1_1base__form}
\input{classcppcms_1_1widgets_1_1base__html__input}
\input{classcppcms_1_1widgets_1_1base__text}
\input{classcppcms_1_1base__view}
\input{classcppcms_1_1widgets_1_1base__widget}
\input{classcppcms_1_1http_1_1basic__content__filter}
\input{classbooster_1_1nowide_1_1basic__filebuf}
\input{classbooster_1_1nowide_1_1basic__filebuf_3_01char_01_4}
\input{classbooster_1_1locale_1_1basic__format}
\input{classbooster_1_1nowide_1_1basic__fstream}
\input{classbooster_1_1nowide_1_1basic__ifstream}
\input{classbooster_1_1aio_1_1basic__io__device}
\input{classbooster_1_1locale_1_1basic__message}
\input{classbooster_1_1nowide_1_1basic__ofstream}
\input{classbooster_1_1aio_1_1basic__socket}
\input{classbooster_1_1aio_1_1buffer__impl}
\input{classcppcms_1_1cache__interface}
\input{classbooster_1_1locale_1_1calendar}
\input{classbooster_1_1locale_1_1calendar__facet}
\input{classcppcms_1_1rpc_1_1call__error}
\input{structbooster_1_1callable}
\input{classbooster_1_1callback}
\input{classbooster_1_1callback_3_01Result_07Params_8_8_8_08_4}
\input{classbooster_1_1aio_1_1aio__error_1_1category}
\input{classcppcms_1_1crypto_1_1cbc}
\input{classcppcms_1_1widgets_1_1checkbox}
\input{classbooster_1_1clone__ptr}
\input{classbooster_1_1locale_1_1collator}
\input{classbooster_1_1locale_1_1collator__base}
\input{structbooster_1_1locale_1_1comparator}
\input{classbooster_1_1condition__variable}
\input{classbooster_1_1aio_1_1const__buffer}
\input{structbooster_1_1detail_1_1const__cast__tag}
\input{classcppcms_1_1util_1_1const__char__buf}
\input{classcppcms_1_1util_1_1const__char__istream}
\input{classcppcms_1_1http_1_1content__limits}
\input{classcppcms_1_1http_1_1content__type}
\input{classcppcms_1_1http_1_1context}
\input{classbooster_1_1locale_1_1conv_1_1conversion__error}
\input{classbooster_1_1locale_1_1converter}
\input{classbooster_1_1locale_1_1converter_3_01char_01_4}
\input{classbooster_1_1locale_1_1converter_3_01wchar__t_01_4}
\input{classbooster_1_1locale_1_1converter__base}
\input{classcppcms_1_1http_1_1cookie}
\input{classcppcms_1_1copy__filter}
\input{classbooster_1_1copy__ptr}
\input{classcppcms_1_1cppcms__error}
\input{classcppcms_1_1filters_1_1date}
\input{classbooster_1_1locale_1_1date__time}
\input{classbooster_1_1locale_1_1date__time__duration}
\input{classbooster_1_1locale_1_1date__time__error}
\input{structbooster_1_1locale_1_1date__time__period}
\input{classbooster_1_1locale_1_1date__time__period__set}
\input{classcppcms_1_1filters_1_1datetime}
\input{classbooster_1_1aio_1_1deadline__timer}
\input{structbooster_1_1locale_1_1gnu__gettext_1_1messages__info_1_1domain}
\input{classbooster_1_1domain__error}
\input{structbooster_1_1detail_1_1dynamic__cast__tag}
\input{structcppcms_1_1widgets_1_1select__base_1_1element}
\input{classcppcms_1_1widgets_1_1email}
\input{classbooster_1_1enable__shared__from__this}
\input{classbooster_1_1enable__shared__from__this2}
\input{classcppcms_1_1sessions_1_1encryptor}
\input{classcppcms_1_1sessions_1_1encryptor__factory}
\input{classbooster_1_1aio_1_1endpoint}
\input{structbooster_1_1aio_1_1buffer__impl_1_1entry}
\input{classbooster_1_1system_1_1error__category}
\input{classbooster_1_1system_1_1error__code}
\input{classcppcms_1_1filters_1_1escape}
\input{structbooster_1_1aio_1_1reactor_1_1event}
\input{classbooster_1_1exception}
\input{structcppcms_1_1applications__pool_1_1factory}
\input{classcppcms_1_1http_1_1file}
\input{classbooster_1_1log_1_1sinks_1_1file}
\input{classcppcms_1_1widgets_1_1file}
\input{classcppcms_1_1util_1_1filterbuf}
\input{classcppcms_1_1util_1_1filterbuf_3_01Filter_00_010_01_4}
\input{classcppcms_1_1form}
\input{classcppcms_1_1form__context}
\input{structcppcms_1_1form__flags}
\input{classcppcms_1_1forwarder}
\input{classbooster_1_1function}
\input{classbooster_1_1function_3_01Result_07Params_8_8_8_08_4}
\input{classbooster_1_1locale_1_1generator}
\input{classcppcms_1_1views_1_1generator}
\input{classbooster_1_1locale_1_1generic__codecvt}
\input{classbooster_1_1locale_1_1generic__codecvt_3_01CharType_00_01CodecvtImpl_00_011_01_4}
\input{classbooster_1_1locale_1_1generic__codecvt_3_01CharType_00_01CodecvtImpl_00_012_01_4}
\input{classbooster_1_1locale_1_1generic__codecvt_3_01CharType_00_01CodecvtImpl_00_014_01_4}
\input{classbooster_1_1locale_1_1generic__codecvt__base}
\input{classcppcms_1_1widgets_1_1hidden}
\input{classcppcms_1_1crypto_1_1hmac}
\input{classbooster_1_1hold__ptr}
\input{classbooster_1_1locale_1_1hold__ptr}
\input{classbooster_1_1locale_1_1info}
\input{classbooster_1_1intrusive__ptr}
\input{classbooster_1_1invalid__argument}
\input{classbooster_1_1locale_1_1conv_1_1invalid__charset__error}
\input{classbooster_1_1io__device}
\input{structbooster_1_1aio_1_1io__events}
\input{classbooster_1_1aio_1_1io__service}
\input{classbooster_1_1locale_1_1ios__info}
\input{classcppcms_1_1form_1_1iterator}
\input{classcppcms_1_1filters_1_1jsescape}
\input{classcppcms_1_1rpc_1_1json__call}
\input{classcppcms_1_1rpc_1_1json__rpc__server}
\input{classcppcms_1_1crypto_1_1key}
\input{classbooster_1_1length__error}
\input{classbooster_1_1locale_1_1localization__backend}
\input{classbooster_1_1locale_1_1localization__backend__manager}
\input{classbooster_1_1log_1_1logger}
\input{classbooster_1_1logic__error}
\input{classcppcms_1_1views_1_1manager}
\input{classcppcms_1_1plugin_1_1manager}
\input{classbooster_1_1match__results}
\input{classbooster_1_1log_1_1message}
\input{classcppcms_1_1crypto_1_1message__digest}
\input{classbooster_1_1locale_1_1message__format}
\input{structbooster_1_1locale_1_1gnu__gettext_1_1messages__info}
\input{classcppcms_1_1mount__point}
\input{classcppcms_1_1http_1_1multipart__filter}
\input{classbooster_1_1aio_1_1mutable__buffer}
\input{classbooster_1_1mutex}
\input{classbooster_1_1noncopyable}
\input{structcppcms_1_1json_1_1null}
\input{classcppcms_1_1widgets_1_1numeric}
\input{classbooster_1_1out__of__range}
\input{classbooster_1_1overflow__error}
\input{classcppcms_1_1widgets_1_1password}
\input{classbooster_1_1locale_1_1period_1_1period__type}
\input{structbooster_1_1detail_1_1polymorphic__cast__tag}
\input{classcppcms_1_1views_1_1pool}
\input{structbooster_1_1locale_1_1posix__time}
\input{classbooster_1_1ptime}
\input{classcppcms_1_1widgets_1_1radio}
\input{classbooster_1_1range__error}
\input{classcppcms_1_1filters_1_1raw}
\input{classcppcms_1_1http_1_1raw__content__filter}
\input{classbooster_1_1aio_1_1reactor}
\input{classbooster_1_1recursive__mutex}
\input{classbooster_1_1recursive__shared__mutex}
\input{classbooster_1_1refcounted}
\input{classbooster_1_1regex}
\input{classbooster_1_1regex__error}
\input{classcppcms_1_1widgets_1_1regex__field}
\input{classcppcms_1_1http_1_1request}
\input{classcppcms_1_1request__forgery__error}
\input{classcppcms_1_1http_1_1response}
\input{classcppcms_1_1xss_1_1rules}
\input{classbooster_1_1runtime__error}
\input{classcppcms_1_1plugin_1_1scope}
\input{classcppcms_1_1widgets_1_1select}
\input{classcppcms_1_1widgets_1_1select__base}
\input{classcppcms_1_1widgets_1_1select__multiple}
\input{classcppcms_1_1serializable}
\input{classcppcms_1_1serializable__base}
\input{structcppcms_1_1serialization__traits}
\input{classcppcms_1_1service}
\input{classcppcms_1_1session__api}
\input{classcppcms_1_1session__api__factory}
\input{classcppcms_1_1sessions_1_1session__cookies}
\input{classcppcms_1_1sessions_1_1session__dual}
\input{classcppcms_1_1session__interface}
\input{classcppcms_1_1session__interface__cookie__adapter}
\input{classcppcms_1_1session__pool}
\input{classcppcms_1_1sessions_1_1session__sid}
\input{classcppcms_1_1sessions_1_1session__storage}
\input{classcppcms_1_1sessions_1_1session__storage__factory}
\input{classbooster_1_1detail_1_1shared__count}
\input{classbooster_1_1shared__lock}
\input{classbooster_1_1shared__mutex}
\input{classbooster_1_1shared__object}
\input{classbooster_1_1shared__ptr}
\input{structbooster_1_1detail_1_1shared__ptr__traits}
\input{structbooster_1_1detail_1_1shared__ptr__traits_3_01void_01_4}
\input{structbooster_1_1detail_1_1shared__ptr__traits_3_01void_01const_01_01_4}
\input{structbooster_1_1detail_1_1shared__ptr__traits_3_01void_01const_01volatile_01_4}
\input{structbooster_1_1detail_1_1shared__ptr__traits_3_01void_01volatile_01_4}
\input{classcppcms_1_1plugin_1_1signature__error}
\input{classbooster_1_1log_1_1sink}
\input{structbooster_1_1detail_1_1sp__convertible}
\input{classbooster_1_1detail_1_1sp__counted__base}
\input{unionbooster_1_1detail_1_1sp__counted__base__atomic}
\input{classbooster_1_1detail_1_1sp__counted__impl__p}
\input{classbooster_1_1detail_1_1sp__counted__impl__pd}
\input{classbooster_1_1detail_1_1sp__counted__impl__pda}
\input{structbooster_1_1detail_1_1sp__empty}
\input{structbooster_1_1detail_1_1sp__enable__if__auto__ptr}
\input{structbooster_1_1detail_1_1sp__enable__if__auto__ptr_3_01std_1_1auto__ptr_3_01T_01_4_00_01R_01_4}
\input{structbooster_1_1detail_1_1sp__enable__if__convertible}
\input{structbooster_1_1detail_1_1sp__enable__if__convertible__impl}
\input{structbooster_1_1detail_1_1sp__enable__if__convertible__impl_3_01false_01_4}
\input{structbooster_1_1detail_1_1sp__enable__if__convertible__impl_3_01true_01_4}
\input{structbooster_1_1detail_1_1sp__nothrow__tag}
\input{classcppcms_1_1util_1_1stackbuf}
\input{classcppcms_1_1util_1_1stackstream}
\input{classbooster_1_1log_1_1sinks_1_1standard__error}
\input{structbooster_1_1locale_1_1utf8__codecvt_1_1state__type}
\input{structbooster_1_1detail_1_1static__cast__tag}
\input{classcppcms_1_1util_1_1steal__buffer}
\input{classbooster_1_1log_1_1sinks_1_1stream}
\input{classbooster_1_1aio_1_1stream__socket}
\input{classcppcms_1_1filters_1_1streamable}
\input{classbooster_1_1streambuf}
\input{classcppcms_1_1filters_1_1strftime}
\input{classcppcms_1_1string__key}
\input{classbooster_1_1sub__match}
\input{classcppcms_1_1widgets_1_1submit}
\input{classbooster_1_1system_1_1system__error}
\input{classcppcms_1_1widgets_1_1text}
\input{classcppcms_1_1widgets_1_1textarea}
\input{classbooster_1_1thread}
\input{classcppcms_1_1thread__pool}
\input{classbooster_1_1thread__specific__ptr}
\input{classcppcms_1_1filters_1_1time}
\input{classcppcms_1_1filters_1_1to__lower}
\input{classcppcms_1_1filters_1_1to__title}
\input{classcppcms_1_1filters_1_1to__upper}
\input{structcppcms_1_1json_1_1traits}
\input{classcppcms_1_1translation__domain__scope}
\input{classcppcms_1_1triggers__recorder}
\input{structcppcms_1_1json_1_1undefined}
\input{classbooster_1_1underflow__error}
\input{classbooster_1_1unique__lock}
\input{classcppcms_1_1urandom__device}
\input{classcppcms_1_1url__dispatcher}
\input{classcppcms_1_1url__mapper}
\input{classcppcms_1_1filters_1_1urlencode}
\input{classbooster_1_1locale_1_1utf8__codecvt}
\input{structbooster_1_1locale_1_1utf_1_1utf__traits}
\input{structbooster_1_1locale_1_1utf_1_1utf__traits_3_01CharType_00_011_01_4}
\input{structbooster_1_1locale_1_1utf_1_1utf__traits_3_01CharType_00_012_01_4}
\input{structbooster_1_1locale_1_1utf_1_1utf__traits_3_01CharType_00_014_01_4}
\input{classcppcms_1_1json_1_1value}
\input{classcppcms_1_1views_1_1view__lock}
\input{classbooster_1_1detail_1_1weak__count}
\input{classbooster_1_1weak__ptr}
\chapter{File Documentation}
\input{log_8h}
%--- End generated contents ---

% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{Index}
\printindex

\end{document}
