warsmartpointer.cpp
来自「ftpserver very good sample」· C++ 代码 · 共 66 行
CPP
66 行
#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 + =
减小字号Ctrl + -
显示快捷键?