\hypertarget{a00443_source}{}\doxysection{AAX\+\_\+\+CMutex.\+h}
\label{a00443_source}\index{AAX\_CMutex.h@{AAX\_CMutex.h}}
\mbox{\hyperlink{a00443}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*================================================================================================*/}}
\DoxyCodeLine{00002\ \textcolor{comment}{/*}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ *\ \ Copyright\ 2014-\/2015,\ 2023-\/2024\ Avid\ Technology,\ Inc.}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ *\ \ All\ rights\ reserved.}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ *\ \ }}
\DoxyCodeLine{00007\ \textcolor{comment}{\ *\ \ This\ file\ is\ part\ of\ the\ Avid\ AAX\ SDK.}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ *\ \ }}
\DoxyCodeLine{00009\ \textcolor{comment}{\ *\ \ The\ AAX\ SDK\ is\ subject\ to\ commercial\ or\ open-\/source\ licensing.}}
\DoxyCodeLine{00010\ \textcolor{comment}{\ *\ \ }}
\DoxyCodeLine{00011\ \textcolor{comment}{\ *\ \ By\ using\ the\ AAX\ SDK,\ you\ agree\ to\ the\ terms\ of\ both\ the\ Avid\ AAX\ SDK\ License}}
\DoxyCodeLine{00012\ \textcolor{comment}{\ *\ \ Agreement\ and\ Avid\ Privacy\ Policy.}}
\DoxyCodeLine{00013\ \textcolor{comment}{\ *\ \ }}
\DoxyCodeLine{00014\ \textcolor{comment}{\ *\ \ AAX\ SDK\ License:\ https://developer.avid.com/aax}}
\DoxyCodeLine{00015\ \textcolor{comment}{\ *\ \ Privacy\ Policy:\ https://www.avid.com/legal/privacy-\/policy-\/statement}}
\DoxyCodeLine{00016\ \textcolor{comment}{\ *\ \ }}
\DoxyCodeLine{00017\ \textcolor{comment}{\ *\ \ Or:\ You\ may\ also\ use\ this\ code\ under\ the\ terms\ of\ the\ GPL\ v3\ (see}}
\DoxyCodeLine{00018\ \textcolor{comment}{\ *\ \ www.gnu.org/licenses).}}
\DoxyCodeLine{00019\ \textcolor{comment}{\ *\ \ }}
\DoxyCodeLine{00020\ \textcolor{comment}{\ *\ \ THE\ AAX\ SDK\ IS\ PROVIDED\ "{}AS\ IS"{}\ WITHOUT\ ANY\ WARRANTY,\ AND\ ALL\ WARRANTIES,\ WHETHER}}
\DoxyCodeLine{00021\ \textcolor{comment}{\ *\ \ EXPRESSED\ OR\ IMPLIED,\ INCLUDING\ MERCHANTABILITY\ AND\ FITNESS\ FOR\ PURPOSE,\ ARE}}
\DoxyCodeLine{00022\ \textcolor{comment}{\ *\ \ DISCLAIMED.}}
\DoxyCodeLine{00023\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00024\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00025\ }
\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#ifndef\ AAX\_CMUTEX\_H}}
\DoxyCodeLine{00027\ \textcolor{preprocessor}{\#define\ AAX\_CMUTEX\_H}}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00035\ \textcolor{comment}{/*================================================================================================*/}}
\DoxyCodeLine{00036\ }
\DoxyCodeLine{00039\ \textcolor{keyword}{class\ }\mbox{\hyperlink{a01870}{AAX\_CMutex}}}
\DoxyCodeLine{00040\ \{}
\DoxyCodeLine{00041\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00042\ \ \ \ \ \mbox{\hyperlink{a01870_a4660e81ede040465fb41613cc8ab1386}{AAX\_CMutex}}();}
\DoxyCodeLine{00043\ \ \ \ \ \mbox{\hyperlink{a01870_a0328e4cd9b148b80d477f3275ce3ff2a}{\string~AAX\_CMutex}}();}
\DoxyCodeLine{00044\ \ \ \ \ }
\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{a01870_a99babc9bed7ae95c36015635f4c500df}{Lock}}();}
\DoxyCodeLine{00046\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{a01870_a8c25bbd0e6030325a7965f8453d96323}{Unlock}}();}
\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{a01870_afdc4af88dd8aca7acba0907f1cb5846f}{Try\_Lock}}();}
\DoxyCodeLine{00048\ \ \ \ \ }
\DoxyCodeLine{00049\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00050\ \ \ \ \ \mbox{\hyperlink{a01870_a4660e81ede040465fb41613cc8ab1386}{AAX\_CMutex}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{a01870}{AAX\_CMutex}}\&);}
\DoxyCodeLine{00051\ \ \ \ \ \mbox{\hyperlink{a01870}{AAX\_CMutex}}\&\ operator=(\textcolor{keyword}{const}\ \mbox{\hyperlink{a01870}{AAX\_CMutex}}\&);}
\DoxyCodeLine{00052\ }
\DoxyCodeLine{00053\ \ \ \ \ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }opaque\_aax\_mutex\_t\ *\ aax\_mutex\_t;\ \ \ \ }
\DoxyCodeLine{00054\ \ \ \ \ aax\_mutex\_t\ \ \ \ \ mMutex;\ }
\DoxyCodeLine{00055\ \};}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00059\ \textcolor{keyword}{class\ }\mbox{\hyperlink{a01874}{AAX\_StLock\_Guard}}}
\DoxyCodeLine{00060\ \{}
\DoxyCodeLine{00061\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00062\ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{a01874_abe7e3ad1ebe9ce3275abc7b23aba32d8}{AAX\_StLock\_Guard}}(\mbox{\hyperlink{a01870}{AAX\_CMutex}}\&\ iMutex)\ :\ mMutex(iMutex)\ \{\ mNeedsUnlock\ =\ mMutex.\mbox{\hyperlink{a01870_a99babc9bed7ae95c36015635f4c500df}{Lock}}();\ \}}
\DoxyCodeLine{00063\ \ \ \ \ \mbox{\hyperlink{a01874_abdc2e6d3f8de54078bbb823e742bb5fc}{\string~AAX\_StLock\_Guard}}()\ \{\ \textcolor{keywordflow}{if}\ (mNeedsUnlock)\ mMutex.\mbox{\hyperlink{a01870_a8c25bbd0e6030325a7965f8453d96323}{Unlock}}();\ \}}
\DoxyCodeLine{00064\ \ \ \ \ }
\DoxyCodeLine{00065\ \textcolor{keyword}{private}:\ \ \ \ }
\DoxyCodeLine{00066\ \ \ \ \ \mbox{\hyperlink{a01874}{AAX\_StLock\_Guard}}(\mbox{\hyperlink{a01874}{AAX\_StLock\_Guard}}\ \textcolor{keyword}{const}\&);}
\DoxyCodeLine{00067\ \ \ \ \ \mbox{\hyperlink{a01874}{AAX\_StLock\_Guard}}\&\ operator=(\mbox{\hyperlink{a01874}{AAX\_StLock\_Guard}}\ \textcolor{keyword}{const}\&);}
\DoxyCodeLine{00068\ }
\DoxyCodeLine{00069\ \ \ \ \ \mbox{\hyperlink{a01870}{AAX\_CMutex}}\ \&\ \ mMutex;}
\DoxyCodeLine{00070\ \ \ \ \ \textcolor{keywordtype}{bool}\ \ \ \ \ \ \ \ \ \ \ \ mNeedsUnlock;}
\DoxyCodeLine{00071\ \};}
\DoxyCodeLine{00072\ }
\DoxyCodeLine{00073\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ AAX\_CMUTEX\_H}}
\DoxyCodeLine{00074\ }

\end{DoxyCode}
