📄 warsmartpointer.cpp
字号:
#include "StdAfx.h"#include <assert.h>#include "WarSmartPointer.h" // class implemented#include "WarCriticalSection.h"#include "WarAutoLock.h"#ifndef WAR_PERFMON_DEF_H# include "WarPerfmonDef.h"#endif// ConstantsWarCriticalSection *WarSmartPointer::mspLock;#define AUTO_LOCK WarAutoLock MyLock(*mspLock);/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarSmartPointer::WarSmartPointer(): mRefCnt(0){ WAR_DB_PERFMON_INC(WAR_PRFDEBUG_NUM_AUTOPTR);}// WarSmartPointerWarSmartPointer::~WarSmartPointer(){ WAR_DB_PERFMON_DEC(WAR_PRFDEBUG_NUM_AUTOPTR);}// ~WarSmartPointer//============================= OPERATORS ====================================//============================= OPERATIONS ===================================void WarSmartPointer::Initialize(){ if (!mspLock) mspLock = new WarCriticalSection;}void WarSmartPointer::Attach(){ AUTO_LOCK ++mRefCnt;}void WarSmartPointer::Detach(){ { AUTO_LOCK if (--mRefCnt <= 0) goto destroy_me; // We can not die when the lock is active } return; destroy_me: delete this;}//============================= ACESS ===================================//============================= INQUIRY ===================================/////////////////////////////// PROTECTED ////////////////////////////////////////////////////////////////// PRIVATE ///////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -