\hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard}{}\doxysection{Ogre\+::Hardware\+Buffer\+Lock\+Guard Struct Reference}
\label{struct_ogre_1_1_hardware_buffer_lock_guard}\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}


Locking helper.  




{\ttfamily \#include $<$Ogre\+Hardware\+Buffer.\+h$>$}

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a336b15294c34936f9d2d1b9e141c55c6}{Hardware\+Buffer\+Lock\+Guard}} ()
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a0b245d74d2d72121817b7632df1321ea}{Hardware\+Buffer\+Lock\+Guard}} (const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&p, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_acf8b2f43970159df11e417defb4926f1}{Hardware\+Buffer\+Lock\+Guard}} (const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&p, size\+\_\+t offset, size\+\_\+t length, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
\mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_ac6b7d7f439a5e813e69d0050570cf098}{Hardware\+Buffer\+Lock\+Guard}} (\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$p, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
\mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a6a3b808f0259dc4de0f13d54f4ced201}{Hardware\+Buffer\+Lock\+Guard}} (\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$p, size\+\_\+t offset, size\+\_\+t length, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
\mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a3142e5282eee9fd635c1ac8ba2759a7b}{$\sim$\+Hardware\+Buffer\+Lock\+Guard}} ()
\item 
{\footnotesize template$<$typename T $>$ }\\void \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a6f99ca38d23c0b747f3b891073c63b8d}{lock}} (const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&p, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
{\footnotesize template$<$typename T $>$ }\\void \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_af49d98668e31dad8d1633d7d3e1a4a3c}{lock}} (const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&p, size\+\_\+t offset, size\+\_\+t length, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
void \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a7635f390d29e3cfbd690c06e59b8c063}{lock}} (\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$p, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
void \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a175906e7402f06dd4f5cfe1713ee3009}{lock}} (\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$p, size\+\_\+t offset, size\+\_\+t length, \mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}} options)
\item 
void \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_ac91557604cdd46df51157fbeabb750ef}{unlock}} ()
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$ \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a97eba63a315626e4c7c49b2c0560c16c}{p\+Buf}}
\item 
void $\ast$ \mbox{\hyperlink{struct_ogre_1_1_hardware_buffer_lock_guard_a2dce8ae3c28183708be814636add7011}{p\+Data}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Locking helper. 

Guaranteed unlocking even in case of exception. 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a336b15294c34936f9d2d1b9e141c55c6}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a336b15294c34936f9d2d1b9e141c55c6}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!HardwareBufferLockGuard@{HardwareBufferLockGuard}}
\index{HardwareBufferLockGuard@{HardwareBufferLockGuard}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{HardwareBufferLockGuard()}{HardwareBufferLockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::\+Hardware\+Buffer\+Lock\+Guard (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_ac6b7d7f439a5e813e69d0050570cf098}\label{struct_ogre_1_1_hardware_buffer_lock_guard_ac6b7d7f439a5e813e69d0050570cf098}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!HardwareBufferLockGuard@{HardwareBufferLockGuard}}
\index{HardwareBufferLockGuard@{HardwareBufferLockGuard}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{HardwareBufferLockGuard()}{HardwareBufferLockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::\+Hardware\+Buffer\+Lock\+Guard (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$}]{p,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References lock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a6a3b808f0259dc4de0f13d54f4ced201}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a6a3b808f0259dc4de0f13d54f4ced201}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!HardwareBufferLockGuard@{HardwareBufferLockGuard}}
\index{HardwareBufferLockGuard@{HardwareBufferLockGuard}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{HardwareBufferLockGuard()}{HardwareBufferLockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::\+Hardware\+Buffer\+Lock\+Guard (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$}]{p,  }\item[{size\+\_\+t}]{offset,  }\item[{size\+\_\+t}]{length,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References lock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a0b245d74d2d72121817b7632df1321ea}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a0b245d74d2d72121817b7632df1321ea}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!HardwareBufferLockGuard@{HardwareBufferLockGuard}}
\index{HardwareBufferLockGuard@{HardwareBufferLockGuard}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{HardwareBufferLockGuard()}{HardwareBufferLockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::\+Hardware\+Buffer\+Lock\+Guard (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&}]{p,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References lock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_acf8b2f43970159df11e417defb4926f1}\label{struct_ogre_1_1_hardware_buffer_lock_guard_acf8b2f43970159df11e417defb4926f1}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!HardwareBufferLockGuard@{HardwareBufferLockGuard}}
\index{HardwareBufferLockGuard@{HardwareBufferLockGuard}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{HardwareBufferLockGuard()}{HardwareBufferLockGuard()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::\+Hardware\+Buffer\+Lock\+Guard (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&}]{p,  }\item[{size\+\_\+t}]{offset,  }\item[{size\+\_\+t}]{length,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References lock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a3142e5282eee9fd635c1ac8ba2759a7b}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a3142e5282eee9fd635c1ac8ba2759a7b}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!````~HardwareBufferLockGuard@{$\sim$HardwareBufferLockGuard}}
\index{````~HardwareBufferLockGuard@{$\sim$HardwareBufferLockGuard}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{$\sim$HardwareBufferLockGuard()}{~HardwareBufferLockGuard()}}
{\footnotesize\ttfamily Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::$\sim$\+Hardware\+Buffer\+Lock\+Guard (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References unlock().



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_ac91557604cdd46df51157fbeabb750ef}\label{struct_ogre_1_1_hardware_buffer_lock_guard_ac91557604cdd46df51157fbeabb750ef}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!unlock@{unlock}}
\index{unlock@{unlock}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{unlock()}{unlock()}}
{\footnotesize\ttfamily void Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::unlock (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References p\+Buf, p\+Data, and Ogre\+::\+Hardware\+Buffer\+::unlock().



Referenced by lock(), and $\sim$\+Hardware\+Buffer\+Lock\+Guard().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a7635f390d29e3cfbd690c06e59b8c063}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a7635f390d29e3cfbd690c06e59b8c063}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!lock@{lock}}
\index{lock@{lock}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{lock()}{lock()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::lock (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$}]{p,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::\+Hardware\+Buffer\+::lock(), p\+Buf, p\+Data, and unlock().



Referenced by Hardware\+Buffer\+Lock\+Guard(), and lock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a175906e7402f06dd4f5cfe1713ee3009}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a175906e7402f06dd4f5cfe1713ee3009}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!lock@{lock}}
\index{lock@{lock}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{lock()}{lock()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily void Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::lock (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}} $\ast$}]{p,  }\item[{size\+\_\+t}]{offset,  }\item[{size\+\_\+t}]{length,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::\+Hardware\+Buffer\+::lock(), p\+Buf, p\+Data, and unlock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a6f99ca38d23c0b747f3b891073c63b8d}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a6f99ca38d23c0b747f3b891073c63b8d}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!lock@{lock}}
\index{lock@{lock}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{lock()}{lock()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::lock (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&}]{p,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References lock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_af49d98668e31dad8d1633d7d3e1a4a3c}\label{struct_ogre_1_1_hardware_buffer_lock_guard_af49d98668e31dad8d1633d7d3e1a4a3c}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!lock@{lock}}
\index{lock@{lock}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{lock()}{lock()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::lock (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_shared_ptr}{Shared\+Ptr}}$<$ T $>$ \&}]{p,  }\item[{size\+\_\+t}]{offset,  }\item[{size\+\_\+t}]{length,  }\item[{\mbox{\hyperlink{class_ogre_1_1_hardware_buffer_aac34930556f611928ec9157c04bd1b0f}{Hardware\+Buffer\+::\+Lock\+Options}}}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References lock().



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a97eba63a315626e4c7c49b2c0560c16c}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a97eba63a315626e4c7c49b2c0560c16c}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!pBuf@{pBuf}}
\index{pBuf@{pBuf}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{pBuf}{pBuf}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_hardware_buffer}{Hardware\+Buffer}}$\ast$ Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::p\+Buf}



Referenced by lock(), and unlock().

\mbox{\Hypertarget{struct_ogre_1_1_hardware_buffer_lock_guard_a2dce8ae3c28183708be814636add7011}\label{struct_ogre_1_1_hardware_buffer_lock_guard_a2dce8ae3c28183708be814636add7011}} 
\index{Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}!pData@{pData}}
\index{pData@{pData}!Ogre::HardwareBufferLockGuard@{Ogre::HardwareBufferLockGuard}}
\doxysubsubsection{\texorpdfstring{pData}{pData}}
{\footnotesize\ttfamily void$\ast$ Ogre\+::\+Hardware\+Buffer\+Lock\+Guard\+::p\+Data}



Referenced by lock(), and unlock().



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_hardware_buffer_8h}{Ogre\+Hardware\+Buffer.\+h}}\end{DoxyCompactItemize}
