summaryrefslogtreecommitdiff
path: root/Runtime/Lua/LuaBind/LuaBindWatchDog.h
blob: 794faa94ac450a4d65333068a86df531d8211cac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef __LUA_BIND_DOG_H__
#define __LUA_BIND_DOG_H__

#include "LuaBindConfig.h"

namespace LuaBind
{

	//
	// NativeClass实例的引用计数额watch dog,只有在watch dog通过时才可以delete。
	//
	class WatchDog
	{
	public: 
		WatchDog()
			: mVMRef(0)
			, mNativeRef(0)
		{
		}

		inline operator bool()
		{
			return mVMRef == 0 && mNativeRef == 0;
		}

		uint mVMRef;     // 托管给的虚拟机数
		uint mNativeRef; // 本地引用数

	};

}

#endif