Axiom.Components.Paging.PageRequestQueue.ProcessBackgroundRequest C# (CSharp) Method

ProcessBackgroundRequest() protected method

Process the background portion of a request (may be threaded)
protected ProcessBackgroundRequest ( Request r ) : void
r Request
return void
        protected void ProcessBackgroundRequest(Request r)
        {
            Log log = LogManager.Instance.DefaultLog;

            if (log.LogDetail == LoggingLevel.Verbose)
            {
                log.Write(LogMessageLevel.Trivial, false, "PageRequestQueue: processing background thread request " + r.RequestType +
                    " for page ID " + r.Page.PageID.Value + " world " + r.Section.World.Name + " : " +
                        r.Section.Name, null);
            }

            try
            {
                switch (r.RequestType)
                {
                    case RequestType.PreparePage:
                        {
                            // Allow procedural generation
                            if (r.Section.PrepareProcedualePage(r.Page))
                            {
                                r.Page.ChangeStatus(UnitStatus.Unloaded, UnitStatus.Prepared);
                            }
                            else
                            {
                                StreamSerializer ser = r.Section.ReadPageStream(r.Page.PageID);
                                r.Page.Prepare(ser);
                                ser = null;
                            }
                            // Pass back to render thread to finalise
                            Request req = new Request(RequestType.LoadPage, r.Page, r.Section);
                            AddRenderRequest(req);

                        }
                        break;
                    case RequestType.UnpreparePage:
                        {
                            // Allow procedural generation
                            if (r.Section.UnprepareProcedualPage(r.Page))
                            {
                                r.Page.ChangeStatus(UnitStatus.Prepared, UnitStatus.Unloaded);
                            }
                            else
                            {
                                r.Page.UnPrepare();
                            }
                            // Pass back to render thread to finalise
                            Request req = new Request(RequestType.DeletePage, r.Page, r.Section);
                            AddRenderRequest(req);
                        }
                        break;
                }
            }
            catch (Exception e)
            {
                LogManager.Instance.Write("Error processing background request: " +
                    e.Message);
            }
        }
        /// <summary>