public static LuaSandbox CreateSandbox(Lua thread, string initialDirectory) { var sandbox = new LuaSandbox(); SandboxForThread.Add(thread, sandbox); sandbox.SetSandboxCurrentDirectory(initialDirectory); return(sandbox); }
public Object GetPerElementData(Object Item, Func <Object, Object> NewFunc) { lock (_extendedData) { if (_extendedData.TryGetValue(Item, out Object result)) { //we got a result- return it. return(result); } else { Object generatedinstance = NewFunc(Item); _extendedData.Add(Item, generatedinstance); return(generatedinstance); } } }
/// <summary> /// Returns an existing or creates a new view model for the specified search hit. /// </summary> /// <param name="searchHit">Search hit for which a view model should be returned, or created.</param> /// <param name="parent">Parent enumerable</param> /// <returns>Created or existing view model.</returns> public static SearchHitViewModel GetOrCreateSearchHitViewModel(Engine.Interfaces.ISearchHit searchHit, ObservableEnumerable parent) { SearchHitViewModel viewModel = null; if (!mViewModels.TryGetValue(searchHit, out viewModel)) { viewModel = new SearchHitViewModel(searchHit, parent); mViewModels.Add(searchHit, viewModel); } return(viewModel); }
/// <summary> Creates a new owned log source. Note that any given object can only have one owned TraceSource.</summary> /// <param name="name">The name of the Log.</param> /// <param name="owner">The object owning the log. This is used to enable OpenTAP to emit log messages on behalf of the owner object. </param> /// <returns>The created Log.</returns> public static TraceSource CreateSource(string name, object owner) { if (owner == null) { throw new ArgumentNullException("owner"); } var source = CreateSource(name); source.Owner = owner; lock (addlock) { ownedTraceSources.Remove(owner); ownedTraceSources.Add(owner, source); // in this version of .NET there is no Update method... } return(source); }
public object WatchForChangesOnLayout(VisualElement visualElement, Action action) { if (action == null) { return(null); } var view = Platform.Android.Platform.GetRenderer(visualElement); var androidView = view?.View; if (androidView == null || !androidView.IsAlive()) { return(null); } var listener = new DualScreenGlobalLayoutListener(action, androidView); var table = new System.Runtime.CompilerServices.ConditionalWeakTable <AView, DualScreenGlobalLayoutListener>(); androidView.ViewTreeObserver.AddOnGlobalLayoutListener(listener); table.Add(androidView, listener); return(table); }