/// <summary> /// Find the proxy for a lua reader /// </summary> public static LuaReaderProxy FindProxy(Lua.lua_Reader reader) { if (reader == null) { return(null); } return(_Proxies.FirstOrDefault(p => p.UnmanagedReader == reader)); }
/// <summary> /// Convert a lua reader to reader /// </summary> public static LuaReader ToReader(this Lua.lua_Reader reader) { if (reader == null) { return(null); } var proxy = LuaReaderProxy.GetProxy(reader); return(proxy != null ? proxy.ManagedReader : null); }
/// <summary> /// Find or create a proxy for a lua reader /// </summary> public static LuaReaderProxy GetProxy(Lua.lua_Reader reader) { if (reader == null) { return(null); } var result = FindProxy(reader); if (result == null) { result = new LuaReaderProxy() { UnmanagedReader = reader }; result.ManagedReader = result.InvokeUnmanagedReader; _Proxies.Add(result); } return(result); }