private IEnumerator LoadCompressedBinary(DataLoadRequest req, byte[] bytes, Action <DataTableLoadError> onEnd, bool useQueue) { bool wait = true; DataTableLoadError error = DataTableLoadError.None; Action act = delegate { try { if (((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).bytes != null) { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003Cerror_003E__1 = ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003C_003Ef__this.Save(((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).req, ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).bytes); } else { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).bytes = ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003C_003Ef__this.cache.Load(((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).req); } if (((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).bytes != null) { if (((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003C_003Ef__this.Verify(((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).req, ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).bytes)) { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003Cerror_003E__1 = ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003C_003Ef__this.ProcessCompressedBinary(((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).req, ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/).bytes); } else { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003Cerror_003E__1 = DataTableLoadError.VerifyError; } } else { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003Cerror_003E__1 = DataTableLoadError.FileReadError; } } catch (Exception) { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003Cerror_003E__1 = DataTableLoadError.FileReadError; } finally { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0030: stateMachine*/)._003Cwait_003E__0 = false; } }; if (useQueue) { taskRunner.Add(req.name, act); } else { ThreadPoolWrapper.QueueUserWorkItem(delegate { ((_003CLoadCompressedBinary_003Ec__Iterator236) /*Error near IL_0072: stateMachine*/)._003Cact_003E__2(); }); } while (wait) { yield return((object)null); } onEnd(error); }
private IEnumerator Load(DataLoadRequest req, bool downloadOnly, bool useQueue, bool forceDownload = false) { int i = 0; for (int len = req.depReqs.Count; i < len; i++) { while (!req.depReqs[i].isCompleted) { yield return((object)null); } } DataTableLoadError error = DataTableLoadError.None; byte[] bytes = null; if (!cache.IsCached(req) || forceDownload) { IEnumerator download = Download(req, delegate(byte[] b) { ((_003CLoad_003Ec__Iterator234) /*Error near IL_00f7: stateMachine*/)._003Cbytes_003E__3 = b; }, delegate(DataTableLoadError e) { ((_003CLoad_003Ec__Iterator234) /*Error near IL_0103: stateMachine*/)._003Cerror_003E__2 = e; }); while (download.MoveNext()) { yield return(download.Current); } if (error != 0) { if (useQueue) { RemoveQueue(req); } if (req.enableLoadBinaryData) { req.enableLoadBinaryData = false; Request(req); } else { req.OnError(error); } yield break; } } if (downloadOnly) { bool wait = true; ThreadPoolWrapper.QueueUserWorkItem(delegate { try { if (((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/)._003Cbytes_003E__3 != null) { ((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/)._003Cerror_003E__2 = ((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/)._003C_003Ef__this.Save(((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/).req, ((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/)._003Cbytes_003E__3); } } catch (Exception) { ((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/)._003Cerror_003E__2 = DataTableLoadError.FileReadError; } finally { ((_003CLoad_003Ec__Iterator234) /*Error near IL_01cc: stateMachine*/)._003Cwait_003E__6 = false; } }); while (wait) { yield return((object)null); } if (error == DataTableLoadError.None) { req.OnComplete(); } else { req.OnError(error); } if (useQueue) { RemoveQueue(req); } } else { Stopwatch sw = Stopwatch.StartNew(); IEnumerator loading; if (req.enableLoadBinaryData) { loading = LoadCompressedBinary(req, bytes, delegate(DataTableLoadError e) { ((_003CLoad_003Ec__Iterator234) /*Error near IL_027b: stateMachine*/)._003Cerror_003E__2 = e; }, useQueue); while (loading.MoveNext()) { yield return(loading.Current); } if (error != 0) { if (useQueue) { requestList.Remove(req); } req.enableLoadBinaryData = false; Request(req); yield break; } } else { loading = LoadCompressedTextWithSignature(req, bytes, delegate(DataTableLoadError e) { ((_003CLoad_003Ec__Iterator234) /*Error near IL_0330: stateMachine*/)._003Cerror_003E__2 = e; }, useQueue); } while (loading.MoveNext()) { yield return(loading.Current); } sw.Stop(); if (error != 0) { req.OnError(error); } else { req.OnComplete(); } if (useQueue) { RemoveQueue(req); } } }