warautolock.h

来自「ftpserver very good sample」· C头文件 代码 · 共 101 行

H
101
字号
/** @name Simple generic therad sync lock object * * * \begin{verbatim} * SafeFunc() * { *    WarAutoLock Lock(SomeCriticalSectionObject); *    ... * } *  *  * #include "WarAutoLock.h" <BR> * -llib  * * *   * @see something */#ifndef WAR_AUTO_LOCK_H#define WAR_AUTO_LOCK_H/* SYSTEM INCLUDES *//* PROJECT INCLUDES */#ifndef WAR_CRITICAL_SECTION_H#   include "WarCriticalSection.h"#endif/* LOCAL INCLUDES *//* FORWARD REFERENCES */#ifdef __cplusplusextern "C" {#endif/****************** BEGIN OLD STYLE C spesific ********//****************** END OLD STYLE C spesific **********/#ifdef __cplusplus }#endif/****************** BEGIN C++ spesific ****************/#ifdef __cplusplusclass WarAutoLock {public:    // LIFECYCLE        /**    * Default constructor.    */    inline WarAutoLock(WarCriticalSection& rLock)         : mpLock(&rLock)    {        mpLock->Lock();    }    inline WarAutoLock(WarCriticalSection *pLock)         : mpLock(pLock)    {        if (pLock)            mpLock->Lock();    }        /**    * Destructor.    */    inline ~WarAutoLock(void)    {        if (mpLock)            mpLock->Unlock();    }protected:private:     WarCriticalSection *mpLock;};/* INLINE METHODS *//* EXTERNAL REFERENCES */#endif /* __cplusplus *//****************** END C++ spesific ******************/#endif  /* _WAR_AUTO_LOCK_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?