CSPspEmu.Hle.HleModuleGuest.CreateDelegate C# (CSharp) Method

CreateDelegate() protected method

protected CreateDelegate ( HleModuleManager ModuleManager, HleModuleHost Module, uint NID, string ModuleImportName, string NIDName ) : Action
ModuleManager HleModuleManager
Module HleModuleHost
NID uint
ModuleImportName string
NIDName string
return Action
        protected Action<CpuThreadState> CreateDelegate(HleModuleManager ModuleManager, HleModuleHost Module, uint NID, string ModuleImportName, string NIDName)
        {
            Action<CpuThreadState> Callback = null;
            if (Module != null)
            {
                if (Module.EntriesByNID.ContainsKey(NID))
                {
                    Callback = Module.EntriesByNID[NID].Delegate;
                }
                else
                {
                    Callback = null;
                }
            }

            return (CpuThreadState) =>
            {
                if (Callback == null)
                {
                    if (CpuThreadState.CpuProcessor.CpuConfig.DebugSyscalls)
                    {
                        Console.WriteLine(
                            "Thread({0}:'{1}'):{2}:{3}",
                            HleThreadManager.Current.Id,
                            HleThreadManager.Current.Name,
                            ModuleImportName, NIDName
                        );
                    }
                    throw (new NotImplementedException("Not Implemented '" + String.Format("{0}:{1}", ModuleImportName, NIDName) + "'"));
                }
                else
                {
                    Callback(CpuThreadState);
                }
            };
        }