버전

menu_open

include/AK/Tools/Win32/AkLock.h

Go to the documentation of this file.
00001 
00002 //
00003 // AkLock.h
00004 //
00005 // AudioKinetic Lock class
00006 //
00007 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved
00008 //
00010 
00011 #ifndef _AKLOCK_H_
00012 #define _AKLOCK_H_
00013 
00014 #include <AK/SoundEngine/Common/AkTypes.h>
00015 #include <windows.h>    //For CRITICAL_SECTION
00016 
00017 //-----------------------------------------------------------------------------
00018 // CAkLock class
00019 //-----------------------------------------------------------------------------
00020 class CAkLock
00021 {
00022 public:
00024     CAkLock() 
00025     {
00026 #ifdef AK_USE_METRO_API
00027         ::InitializeCriticalSectionEx( &m_csLock, 0, 0 );
00028 #else
00029         ::InitializeCriticalSection( &m_csLock );
00030 #endif
00031     }
00032 
00034     ~CAkLock()
00035     {
00036         ::DeleteCriticalSection( &m_csLock );
00037     }
00038 
00040     inline AKRESULT Lock( void )
00041     {
00042         ::EnterCriticalSection( &m_csLock );
00043         return AK_Success;
00044     }
00045 
00047     inline AKRESULT Unlock( void )
00048     {
00049         ::LeaveCriticalSection( &m_csLock );
00050         return AK_Success;
00051     }
00052 
00053 /*  // Returns AK_Success if lock aquired, AK_Fail otherwise.
00054     inline AKRESULT Trylock( void )
00055     {
00056         if ( ::TryEnterCriticalSection( &m_csLock ) )
00057             return AK_Success;
00058         return AK_Fail;
00059     } */
00060 
00061 private:
00062     CRITICAL_SECTION  m_csLock; 
00063 };
00064 
00065 #endif // _AKLOCK_H_

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요