\hypertarget{class_ogre_1_1_page_provider}{}\section{Ogre\+:\+:Page\+Provider Class Reference}
\label{class_ogre_1_1_page_provider}\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}


Abstract class that can be implemented by the user application to provide a way to retrieve or generate page data from a source of their choosing.  




{\ttfamily \#include $<$Ogre\+Page\+Manager.\+h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_page_provider_ab796c764ed717dc1f5f4f70b9fd7f3f2}{Page\+Provider} ()
\item 
virtual \hyperlink{class_ogre_1_1_page_provider_ab0f1061b31c84bb8b730ac848a8241e7}{$\sim$\+Page\+Provider} ()
\item 
virtual bool \hyperlink{class_ogre_1_1_page_provider_a21e0f99d400fea63fb6dd4024c873834}{load\+Procedural\+Page} (\hyperlink{class_ogre_1_1_page}{Page} $\ast$page, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Give a provider the opportunity to load page content procedurally. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_page_provider_a673e0105f4c2a4cb4f4a1631ebfe48c8}{prepare\+Procedural\+Page} (\hyperlink{class_ogre_1_1_page}{Page} $\ast$page, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Give a provider the opportunity to prepare page content procedurally. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} $\ast$ \hyperlink{class_ogre_1_1_page_provider_acc765352fa835ea260b9ce989d872b9e}{read\+Page\+Stream} (\hyperlink{namespace_ogre_a5126a9c9fbccbfe4c78070263098acb2}{Page\+ID} page\+ID, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Get a serialiser set up to read \hyperlink{class_ogre_1_1_page}{Page} data for the given Page\+ID, or null if this provider cannot supply one. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} $\ast$ \hyperlink{class_ogre_1_1_page_provider_aa542da6a61f2bacf9a2c7c128eb91c76}{read\+World\+Stream} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Get a serialiser set up to read \hyperlink{class_ogre_1_1_paged_world}{Paged\+World} data for the given world filename. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_page_provider_ae164fead87b9512b924b2ad3e20dba97}{unload\+Procedural\+Page} (\hyperlink{class_ogre_1_1_page}{Page} $\ast$page, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Give a provider the opportunity to unload page content procedurally. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_page_provider_a66ee65df7701f813b055ed09aeaa7949}{unprepare\+Procedural\+Page} (\hyperlink{class_ogre_1_1_page}{Page} $\ast$page, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Give a provider the opportunity to unprepare page content procedurally. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} $\ast$ \hyperlink{class_ogre_1_1_page_provider_aa32a942e1b415cae94b984924266f9de}{write\+Page\+Stream} (\hyperlink{namespace_ogre_a5126a9c9fbccbfe4c78070263098acb2}{Page\+ID} page\+ID, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Get a serialiser set up to write \hyperlink{class_ogre_1_1_page}{Page} data for the given Page\+ID, or null if this provider cannot supply one. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} $\ast$ \hyperlink{class_ogre_1_1_page_provider_a44eb5f25c6d9875c1a7f4745a8c9f7c3}{write\+World\+Stream} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename)
\begin{DoxyCompactList}\small\item\em Get a serialiser set up to write \hyperlink{class_ogre_1_1_paged_world}{Paged\+World} data for the given world filename. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Abstract class that can be implemented by the user application to provide a way to retrieve or generate page data from a source of their choosing. 

\begin{DoxyNote}{Note}
All of the methods in this class can be called in a background, non-\/render thread. 
\end{DoxyNote}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_ab796c764ed717dc1f5f4f70b9fd7f3f2}\label{class_ogre_1_1_page_provider_ab796c764ed717dc1f5f4f70b9fd7f3f2}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!Page\+Provider@{Page\+Provider}}
\index{Page\+Provider@{Page\+Provider}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{Page\+Provider()}{PageProvider()}}
{\footnotesize\ttfamily Ogre\+::\+Page\+Provider\+::\+Page\+Provider (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_page_provider_ab0f1061b31c84bb8b730ac848a8241e7}\label{class_ogre_1_1_page_provider_ab0f1061b31c84bb8b730ac848a8241e7}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!````~Page\+Provider@{$\sim$\+Page\+Provider}}
\index{````~Page\+Provider@{$\sim$\+Page\+Provider}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{$\sim$\+Page\+Provider()}{~PageProvider()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Page\+Provider\+::$\sim$\+Page\+Provider (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_a673e0105f4c2a4cb4f4a1631ebfe48c8}\label{class_ogre_1_1_page_provider_a673e0105f4c2a4cb4f4a1631ebfe48c8}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!prepare\+Procedural\+Page@{prepare\+Procedural\+Page}}
\index{prepare\+Procedural\+Page@{prepare\+Procedural\+Page}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{prepare\+Procedural\+Page()}{prepareProceduralPage()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Page\+Provider\+::prepare\+Procedural\+Page (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_page}{Page} $\ast$}]{page,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Give a provider the opportunity to prepare page content procedurally. 

\begin{DoxyRemark}{Remarks}
This call may well happen in a separate thread so it should not access G\+PU resources, use load\+Procedural\+Page for that 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
true if the page was populated, false otherwise 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_a21e0f99d400fea63fb6dd4024c873834}\label{class_ogre_1_1_page_provider_a21e0f99d400fea63fb6dd4024c873834}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!load\+Procedural\+Page@{load\+Procedural\+Page}}
\index{load\+Procedural\+Page@{load\+Procedural\+Page}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{load\+Procedural\+Page()}{loadProceduralPage()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Page\+Provider\+::load\+Procedural\+Page (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_page}{Page} $\ast$}]{page,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Give a provider the opportunity to load page content procedurally. 

\begin{DoxyRemark}{Remarks}
This call will happen in the main render thread so it can access G\+PU resources. Use prepare\+Procedural\+Page for background preparation. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
true if the page was populated, false otherwise 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_ae164fead87b9512b924b2ad3e20dba97}\label{class_ogre_1_1_page_provider_ae164fead87b9512b924b2ad3e20dba97}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!unload\+Procedural\+Page@{unload\+Procedural\+Page}}
\index{unload\+Procedural\+Page@{unload\+Procedural\+Page}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{unload\+Procedural\+Page()}{unloadProceduralPage()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Page\+Provider\+::unload\+Procedural\+Page (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_page}{Page} $\ast$}]{page,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Give a provider the opportunity to unload page content procedurally. 

\begin{DoxyRemark}{Remarks}
You should not call this method directly. This call will happen in the main render thread so it can access G\+PU resources. Use \+\_\+unprepare\+Procedural\+Page for background preparation. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
true if the page was populated, false otherwise 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_a66ee65df7701f813b055ed09aeaa7949}\label{class_ogre_1_1_page_provider_a66ee65df7701f813b055ed09aeaa7949}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!unprepare\+Procedural\+Page@{unprepare\+Procedural\+Page}}
\index{unprepare\+Procedural\+Page@{unprepare\+Procedural\+Page}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{unprepare\+Procedural\+Page()}{unprepareProceduralPage()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Page\+Provider\+::unprepare\+Procedural\+Page (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_page}{Page} $\ast$}]{page,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Give a provider the opportunity to unprepare page content procedurally. 

\begin{DoxyRemark}{Remarks}
You should not call this method directly. This call may well happen in a separate thread so it should not access G\+PU resources, use \+\_\+unload\+Procedural\+Page for that 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
true if the page was unpopulated, false otherwise 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_aa542da6a61f2bacf9a2c7c128eb91c76}\label{class_ogre_1_1_page_provider_aa542da6a61f2bacf9a2c7c128eb91c76}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!read\+World\+Stream@{read\+World\+Stream}}
\index{read\+World\+Stream@{read\+World\+Stream}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{read\+World\+Stream()}{readWorldStream()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}$\ast$ Ogre\+::\+Page\+Provider\+::read\+World\+Stream (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get a serialiser set up to read \hyperlink{class_ogre_1_1_paged_world}{Paged\+World} data for the given world filename. 

\begin{DoxyRemark}{Remarks}
The \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} returned is the responsibility of the caller to delete. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_a44eb5f25c6d9875c1a7f4745a8c9f7c3}\label{class_ogre_1_1_page_provider_a44eb5f25c6d9875c1a7f4745a8c9f7c3}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!write\+World\+Stream@{write\+World\+Stream}}
\index{write\+World\+Stream@{write\+World\+Stream}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{write\+World\+Stream()}{writeWorldStream()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}$\ast$ Ogre\+::\+Page\+Provider\+::write\+World\+Stream (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get a serialiser set up to write \hyperlink{class_ogre_1_1_paged_world}{Paged\+World} data for the given world filename. 

\begin{DoxyRemark}{Remarks}
The \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} returned is the responsibility of the caller to delete. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_acc765352fa835ea260b9ce989d872b9e}\label{class_ogre_1_1_page_provider_acc765352fa835ea260b9ce989d872b9e}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!read\+Page\+Stream@{read\+Page\+Stream}}
\index{read\+Page\+Stream@{read\+Page\+Stream}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{read\+Page\+Stream()}{readPageStream()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}$\ast$ Ogre\+::\+Page\+Provider\+::read\+Page\+Stream (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a5126a9c9fbccbfe4c78070263098acb2}{Page\+ID}}]{page\+ID,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get a serialiser set up to read \hyperlink{class_ogre_1_1_page}{Page} data for the given Page\+ID, or null if this provider cannot supply one. 

\begin{DoxyRemark}{Remarks}
The \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} returned is the responsibility of the caller to delete. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em page\+ID} & The ID of the page being requested \\
\hline
{\em section} & The parent section to which this page will belong \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_page_provider_aa32a942e1b415cae94b984924266f9de}\label{class_ogre_1_1_page_provider_aa32a942e1b415cae94b984924266f9de}} 
\index{Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}!write\+Page\+Stream@{write\+Page\+Stream}}
\index{write\+Page\+Stream@{write\+Page\+Stream}!Ogre\+::\+Page\+Provider@{Ogre\+::\+Page\+Provider}}
\subsubsection{\texorpdfstring{write\+Page\+Stream()}{writePageStream()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser}$\ast$ Ogre\+::\+Page\+Provider\+::write\+Page\+Stream (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a5126a9c9fbccbfe4c78070263098acb2}{Page\+ID}}]{page\+ID,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Get a serialiser set up to write \hyperlink{class_ogre_1_1_page}{Page} data for the given Page\+ID, or null if this provider cannot supply one. 

\begin{DoxyRemark}{Remarks}
The \hyperlink{class_ogre_1_1_stream_serialiser}{Stream\+Serialiser} returned is the responsibility of the caller to delete. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em page\+ID} & The ID of the page being requested \\
\hline
{\em section} & The parent section to which this page will belong \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_page_manager_8h}{Ogre\+Page\+Manager.\+h}\end{DoxyCompactItemize}
