From f4c338c63f3456a8eccd56c35e233843687d55be Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 29 Mar 2019 00:43:25 +0800 Subject: *thread --- source/3rd-party/Luax/luax_class.hpp | 39 ++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) (limited to 'source/3rd-party/Luax/luax_class.hpp') diff --git a/source/3rd-party/Luax/luax_class.hpp b/source/3rd-party/Luax/luax_class.hpp index cfac2a5..99ac381 100644 --- a/source/3rd-party/Luax/luax_class.hpp +++ b/source/3rd-party/Luax/luax_class.hpp @@ -13,7 +13,8 @@ namespace Luax /// /// RegisterLuaxClass 注册类的方法和成员,比如枚举、常量等到class table - /// LuaxGetFactoryName 获得工厂的类名,同时用来避免注册时错误注册为了singleton,通过编译时报错避免 + /// LuaxGetFactoryName 获得工厂的类名,同时用来避免注册时错误注册为了singleton,通过编译 + /// 时报错避免 /// #define LUAX_DECL_FACTORY(type) \ static void RegisterLuaxClass(Luax::LuaxState&);\ @@ -69,8 +70,9 @@ namespace Luax T* self = state.GetUserdata(1); /// - /// 虚基类,为了实现多态。需要访问下面这些接口的外部基类需要虚继承此类,之后再派生链中就会调用对应实体的方法。注意继承此 - /// 类时不能实现下面的方法,实现在LuaxNativeClass中,实现会导致二义性。 + /// 虚基类,为了实现多态。需要访问下面这些接口的外部基类需要虚继承此类,之后再派生链中就会 + /// 调用对应实体的方法。注意继承此类时不能实现下面的方法,实现在LuaxNativeClass中,实现会 + /// 导致二义性。 /// class ILuaxNativeAccessor { @@ -88,7 +90,8 @@ namespace Luax }; /// - /// 需要暴露给lua的native class需要继承此类。通过lua管理的实例要确保引用计数的正确性,在多个线程中需要确定不会误释放。 + /// 需要暴露给lua的native class需要继承此类。通过lua管理的实例要确保引用计数的正确性,在 + /// 多个线程中需要确定不会误释放。 /// template class LuaxNativeClass : public virtual ILuaxNativeAccessor @@ -98,8 +101,9 @@ namespace Luax static bool IsTypeOf(ILuaxNativeAccessor); /// - /// 将userdata作为key,在ref table里对userdata添加一个引用,以维持userdata的生命周期。相比较member ref,这个用在 - /// 实体会被多次被不同其他实体引用的情况,并频繁销毁这些实体,避免lua频繁的调用gc检测。 + /// 将userdata作为key,在ref table里对userdata添加一个引用,以维持userdata的生命周期。 + /// 相比较member ref,这个用在实体会被多次被不同其他实体引用的情况,并频繁销毁这些实体, + ///避免lua频繁的调用gc检测。 /// template void LuaxRetain(LuaxState& state, U* userdata); @@ -111,8 +115,8 @@ namespace Luax bool PushLuaxMemberRef(LuaxState& state, int refID) override; /// - /// 将userdata push到栈顶,如果没有初始化mUserdata,初始化设置好元表并把初始化好的userdata留在栈顶。并添加一个引用。 - /// 这是一个将native对象所有权移交给lua控制的方法。 + /// 将userdata push到栈顶,如果没有初始化mUserdata,初始化设置好元表并把初始化好的 + /// userdata留在栈顶。并添加一个引用。这是一个将native对象所有权移交给lua控制的方法。 /// bool PushLuaxUserdata(LuaxState& state); bool PushLuaxMemberTable(LuaxState& state); @@ -143,8 +147,8 @@ namespace Luax static void PushLuaxClassTable(LuaxState& state); /// - /// 屏蔽取地址运算符,如果需要地址,只能通过在堆上创建实例得到。在栈上和静态区的变量不能取地址。保证引用计数的准确。如 - /// 果需要穿引用,使用引用传递而不是传递地址。 + /// 屏蔽取地址运算符,如果需要地址,只能通过在堆上创建实例得到。在栈上和静态区的变量不能 + /// 取地址。保证引用计数的准确。如果需要穿引用,使用引用传递而不是传递地址。 /// void* operator &(); @@ -158,17 +162,18 @@ namespace Luax /// static LuaxStrongRef mClassTable; /// - /// 如果类是单例,这个用来保存singleton的引用关系,以保证不会被回收类似普通类的ref table。单例的成员是全生命周期的, - /// 所以直接在_LUAX_STRONGREF_TABLE。单例对userdata进行LuaxRetain\LuaxRelease和member ref操作时和工厂实例不同, - /// 是存在下面这个ref table里的,这个table在_LUAX_STRONGREF_TABLE里。 + /// 如果类是单例,这个用来保存singleton的引用关系,以保证不会被回收类似普通类的ref table。 + /// 单例的成员是全生命周期的,所以直接在_LUAX_STRONGREF_TABLE。单例对userdata进行 + /// LuaxRetain\LuaxRelease和member ref操作时和工厂实例不同,是存在下面这个ref table里 + /// 的,这个table在_LUAX_STRONGREF_TABLE里。 /// static LuaxStrongRef mSingletonRefTable; /// /// 通过userdata可以拿到: - /// 1: ref table - /// 2: member table - /// 3: class table + /// 1: ref table + /// 2: member table + /// 3: class table /// LuaxWeakRef mUserdata; @@ -193,7 +198,7 @@ namespace Luax #endif }; - //-------------------------------------------------------------------------------------------------------------- + //--------------------------------------------------------------------------------// #if LUAX_ENABLE_PLAIN_CLASS /// -- cgit v1.1-26-g67d0