Esempio n. 1
0
        // Token: 0x0600076B RID: 1899 RVA: 0x00032DD4 File Offset: 0x00030FD4
        private void xmethod_1301(object obje_0)
        {
            Class_198 class_ = (Class_198)obje_0;

            try
            {
                int       num     = class_.field_3;
                Class_215 class_2 = new Class_215();
                class_2.pmethod_1369(class_.field_0, 0, class_.field_5);
                this.tmethod_1302(class_);
                class_.field_2 = class_2.prop_1;
                lock (this.field_18)
                {
                    if (class_.field_4 > this.field_15)
                    {
                        this.field_15 = class_.field_4;
                    }
                }
                lock (this.field_19)
                {
                    this.field_19.Enqueue(class_.field_3);
                }
                this.field_8.Set();
            }
            catch (Exception ex)
            {
                lock (this.field_25)
                {
                    if (this.field_23 != null)
                    {
                        this.field_23 = ex;
                    }
                }
            }
        }
Esempio n. 2
0
        // Token: 0x0600076C RID: 1900 RVA: 0x00032EFC File Offset: 0x000310FC
        private bool tmethod_1302(Class_198 arg_0)
        {
            Class_212 class_ = arg_0.field_7;

            class_.ResetDeflate();
            class_.NextIn            = 0;
            class_.AvailableBytesIn  = arg_0.field_5;
            class_.NextOut           = 0;
            class_.AvailableBytesOut = arg_0.field_1.Length;
            do
            {
                class_.Deflate(Class_201.None);
            }while (class_.AvailableBytesIn > 0 || class_.AvailableBytesOut == 0);
            class_.Deflate(Class_201.Sync);
            arg_0.field_6 = (int)class_.TotalBytesOut;
            return(true);
        }
Esempio n. 3
0
 // Token: 0x06000764 RID: 1892 RVA: 0x000329EC File Offset: 0x00030BEC
 private void cmethod_1294(bool bool_0)
 {
     if (this.field_10)
     {
         throw new InvalidOperationException();
     }
     if (this.field_4)
     {
         return;
     }
     if (this.field_12 >= 0)
     {
         Class_198 obje_ = this.field_2[this.field_12];
         this.xmethod_1301(obje_);
         this.field_12 = -1;
     }
     if (bool_0)
     {
         this.smethod_1300(true, false);
         this.gmethod_1293();
         return;
     }
     this.smethod_1300(false, false);
 }
Esempio n. 4
0
 // Token: 0x0600076A RID: 1898 RVA: 0x00032C08 File Offset: 0x00030E08
 private void smethod_1300(bool bool_0, bool bool_1)
 {
     if (this.field_4)
     {
         return;
     }
     this.field_4 = true;
     if (bool_0 || bool_1)
     {
         this.field_8.WaitOne();
     }
     do
     {
         int num  = -1;
         int num2 = bool_0 ? 200 : (bool_1 ? -1 : 0);
         int num3 = -1;
         do
         {
             if (Monitor.TryEnter(this.field_19, num2))
             {
                 num3 = -1;
                 try
                 {
                     if (this.field_19.Count > 0)
                     {
                         num3 = this.field_19.Dequeue();
                     }
                 }
                 finally
                 {
                     Monitor.Exit(this.field_19);
                 }
                 if (num3 >= 0)
                 {
                     Class_198 class_ = this.field_2[num3];
                     if (class_.field_4 != this.field_14 + 1)
                     {
                         lock (this.field_19)
                         {
                             this.field_19.Enqueue(num3);
                         }
                         if (num == num3)
                         {
                             this.field_8.WaitOne();
                             num = -1;
                         }
                         else if (num == -1)
                         {
                             num = num3;
                         }
                     }
                     else
                     {
                         num = -1;
                         this.field_5.Write(class_.field_1, 0, class_.field_6);
                         this.field_17.kmethod_1377(class_.field_2, class_.field_5);
                         this.field_21 += (long)class_.field_5;
                         class_.field_5 = 0;
                         this.field_14  = class_.field_4;
                         this.field_20.Enqueue(class_.field_3);
                         if (num2 == -1)
                         {
                             num2 = 0;
                         }
                     }
                 }
             }
             else
             {
                 num3 = -1;
             }
         }while (num3 >= 0);
     }while (bool_0 && this.field_14 != this.field_15);
     this.field_4 = false;
 }
Esempio n. 5
0
        // Token: 0x06000762 RID: 1890 RVA: 0x000327A4 File Offset: 0x000309A4
        public virtual void tmethod_1292(byte[] byteDizi_0, int sayıInt_0, int sayıInt_1)
        {
            bool bool_ = false;

            if (this.field_10)
            {
                throw new InvalidOperationException();
            }
            if (this.field_23 != null)
            {
                this.field_24 = true;
                Exception ex = this.field_23;
                this.field_23 = null;
                throw ex;
            }
            if (sayıInt_1 == 0)
            {
                return;
            }
            if (!this.field_11)
            {
                this.xmethod_1291();
                this.field_11 = true;
            }
            for (;;)
            {
                this.smethod_1300(false, bool_);
                bool_ = false;
                int index;
                if (this.field_12 >= 0)
                {
                    index = this.field_12;
                    goto IL_AF;
                }
                if (this.field_20.Count != 0)
                {
                    index = this.field_20.Dequeue();
                    this.field_13++;
                    goto IL_AF;
                }
                bool_ = true;
IL_170:
                if (sayıInt_1 <= 0)
                {
                    return;
                }
                continue;
IL_AF:
                Class_198 class_ = this.field_2[index];
                int num = (class_.field_0.Length - class_.field_5 > sayıInt_1) ? sayıInt_1 : (class_.field_0.Length - class_.field_5);
                class_.field_4 = this.field_13;
                Buffer.BlockCopy(byteDizi_0, sayıInt_0, class_.field_0, class_.field_5, num);
                sayıInt_1      -= num;
                sayıInt_0      += num;
                class_.field_5 += num;
                if (class_.field_5 == class_.field_0.Length)
                {
                    if (!ThreadPool.QueueUserWorkItem(new WaitCallback(this.xmethod_1301), class_))
                    {
                        break;
                    }
                    this.field_12 = -1;
                }
                else
                {
                    this.field_12 = index;
                }
                goto IL_170;
            }
            throw new Exception("Cannot enqueue workitem");
        }