Exemplo n.º 1
0
            private void Parse(Stream s)
            {
                var br = new BinaryStreamWrapper(s);

                br.ByteOrder = ByteOrder.BigEndian;
                mId          = (SoundProperty)br.ReadUInt32();

                mTypeCode = (DataType)br.ReadUInt16();
                mRepCode  = br.ReadUInt16();
                var data = new List <TypedData>();

                if (!HasTypeData)
                {
                    data.Add(ReadTypedData(0, handler, mTypeCode, s));
                }
                else
                {
                    int count    = br.ReadInt32();
                    int itemSize = br.ReadInt32();
                    if (itemSize != ItemSize)
                    {
                        throw new InvalidDataException(String.Format("Bad item size: Expected {0}, but got {1}", ItemSize, itemSize));
                    }
                    for (int i = 0; i < count; i++)
                    {
                        data.Add(ReadTypedData(0, handler, mTypeCode, s));
                    }
                }
                mItems = new DataList(handler, data, this);
            }
Exemplo n.º 2
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Write(mFlags);
            s.Write(mDdsResource);
            s.Write(mByte01);
            s.Write(mInt01);
            s.Write(mByte02);
            if (isTheSims4)
            {
                s.Write(mInt02);
            }
            s.Write(mLifetime);
            mRotationCurve.UnParse(stream);
            mSizeCurve.UnParse(stream);
            mAlphaCurve.UnParse(stream);
            mColorCurve.UnParse(stream);
            mAspectCurve.UnParse(stream);
            s.Write(mAlphaVary);
            s.Write(mSizeVary);
            s.Write(mRotationVary);
            s.Write(mTextureRepeat);
            mTextureOffset.UnParse(stream);
            s.Write(mEmitColorMapId);
            if (mSection.Version >= 2)
            {
                s.Write(mByte03);                        //version 2+
            }
        }
Exemplo n.º 3
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Write(mFlags);
            s.Write(mDensity);
            s.Write(mComponentName, StringType.ZeroDelimited);
            s.Write(mStart);
            s.Write(mSourceType);
            s.Write(mSourceSize);
            mPreTransform.UnParse(stream);
            mSizeCurve.UnParse(stream);
            s.Write(mSizeVary);
            mPitchCurve.UnParse(stream);
            mRollCurve.UnParse(stream);
            mHeadingCurve.UnParse(stream);
            s.Write(mPitchVary);
            s.Write(mRollVary);
            s.Write(mHeadingVary);
            s.Write(mPitchOffset);
            s.Write(mRollOffset);
            s.Write(mHeadingOffset);
            mColorCurve.UnParse(stream);
            mColorVary.UnParse(stream);
            mAlphaCurve.UnParse(stream);
            s.Write(mAlphaVary);
            mSurfaces.UnParse(stream);
            s.Write(mEmitMapId);
            s.Write(mColorMapId);
            s.Write(mPinMapId);
            mAltitudeRange.UnParse(stream);
            mDrawInfo.UnParse(stream);
            s.Write(mOverrideSet);
            s.Write(mMessageId);
        }
Exemplo n.º 4
0
            protected override void Parse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Read(out mResourceId);
                s.Read(out mFormat);
                s.Read(out mDrawMode);

                if ((mDrawMode & 0x80) == 0x80)
                {
                    s.Read(out mInt01);
                }
                if ((mDrawMode & 0x40) == 0x40 && !isTheSims4)
                {
                    s.Read(out mByte01);
                }

                if (mSection.Version >= 0x0006)
                {
                    s.Read(out mDrawFlags);
                }
                else
                {
                    byte flags;
                    s.Read(out flags);
                    mDrawFlags = flags;
                }

                s.Read(out mBuffer);
                s.Read(out mLayer);
                s.Read(out mSortOffset);
                s.Read(out mResourceId2);
            }
Exemplo n.º 5
0
            protected override void Parse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Read(out mScreenRatio);
                s.Read(out mSize);
            }
Exemplo n.º 6
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            mElements.UnParse(stream);
            s.Write(mFlags);
        }
Exemplo n.º 7
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Write(mComponentType);
                s.Write(mFlags);
                mLocalXForm.UnParse(stream);
                s.Write(mLODBegin);
                s.Write(mLODEnd);
                mLODScales.UnParse(stream);
                s.Write(mEmitScaleBegin);  //1.0
                s.Write(mEmitScaleEnd);    //1.0
                s.Write(mSizeScaleBegin);  //1.0
                s.Write(mSizeScaleEnd);    //1.0
                s.Write(mAlphaScaleBegin); //1.0
                s.Write(mAlphaScaleEnd);   //1.0
                s.Write(mAppFlags);
                s.Write(mAppFlagsMask);
                s.Write(mSelectionGroup);
                s.Write(mSelectionChance);
                s.Write(mTimeScale);
                s.Write(mComponentIndex);
                if (mSection.Version >= 2)
                {
                    s.Write(mByte03); //version 2+
                    s.Write(mByte04); //version 2+
                }
                if (mSection.Version >= 3)
                {
                    mFloatList01.UnParse(stream);
                }
            }
Exemplo n.º 8
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Write(mResourceId);
                s.Write(mFormat);
                s.Write(mDrawMode);

                if ((mDrawMode & 0x80) == 0x80)
                {
                    s.Write(mInt01);
                }
                if ((mDrawMode & 0x40) == 0x40 && !isTheSims4)
                {
                    s.Write(mByte01);
                }

                if (mSection.Version >= 0x0006)
                {
                    s.Write(mDrawFlags);
                }
                else
                {
                    byte flags = (byte)(mDrawFlags & 0xFF);
                    s.Write(flags);
                }

                s.Write(mBuffer);
                s.Write(mLayer);
                s.Write(mSortOffset);
                s.Write(mResourceId2);
            }
Exemplo n.º 9
0
        protected override void Parse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Read(out mFlags);
            //mFlags &= 0x7F;

            s.Read(out mDdsResource);
            s.Read(out mByte01);
            s.Read(out mInt01);
            s.Read(out mByte02);
            if (isTheSims4)
            {
                s.Read(out mInt02);
            }
            s.Read(out mLifetime);
            mRotationCurve = new DataList <FloatValue>(handler, stream);
            mSizeCurve     = new DataList <FloatValue>(handler, stream);
            mAlphaCurve    = new DataList <FloatValue>(handler, stream);
            mColorCurve    = new DataList <ColorValue>(handler, stream);
            mAspectCurve   = new DataList <FloatValue>(handler, stream);
            s.Read(out mAlphaVary);
            s.Read(out mSizeVary);
            s.Read(out mRotationVary);
            s.Read(out mTextureRepeat);
            mTextureOffset = new Vector2ValueLE(requestedApiVersion, handler, stream);
            s.Read(out mEmitColorMapId);
            if (mSection.Version >= 2 && stream.Position < stream.Length)
            {
                s.Read(out mByte03);                                                           //version 2+
            }
        }
Exemplo n.º 10
0
 public uint this[string key]
 {
     get
     {
         int num = base.BinarySearch(0, base.Count, null, new StringHandleComparer(key));
         if (num < 0)
         {
             throw new KeyNotFoundException();
         }
         return(base[num].Index);
     }
     set
     {
         int num = base.BinarySearch(0, base.Count, null, new StringHandleComparer(key));
         if (num >= 0)
         {
             base[num].Index = value;
         }
         else
         {
             MemoryStream        s       = new MemoryStream();
             BinaryStreamWrapper wrapper = new BinaryStreamWrapper(s, ByteOrder.BigEndian);
             wrapper.WriteString(key, StringType.ZeroDelimited);
             s.Position = 0L;
             base.Insert(~num, new VisualEffectName(0, base.handler, s, value));
         }
     }
 }
Exemplo n.º 11
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                mTimeRange.UnParse(stream);
                s.Write(mEffectName, StringType.ZeroDelimited);
            }
Exemplo n.º 12
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Write(mData.X);
            s.Write(mData.Y);
        }
Exemplo n.º 13
0
        protected override Stream UnParse()
        {
            var outputStream = new MemoryStream();
            var s            = new BinaryStreamWrapper(outputStream, ByteOrder.BigEndian);

            s.Write(mVersion);
            if (mEffectSections == null)
            {
                mEffectSections = new EffectSectionList(OnResourceChanged);
            }
            mEffectSections.UnParse(outputStream);
            if (mResourceSections == null)
            {
                mResourceSections = new ResourceSectionList(OnResourceChanged);
            }
            mResourceSections.UnParse(outputStream);
            if (mVisualEffectSections == null)
            {
                mVisualEffectSections = new VisualEffectSection(0, OnResourceChanged, 2);
            }
            s.Write(mVisualEffectSections.Version);
            mVisualEffectSections.UnParse(outputStream);
            if (mVisualEffectIds == null)
            {
                mVisualEffectIds = new VisualEffectIdList(OnResourceChanged);
            }
            mVisualEffectIds.UnParse(outputStream);
            if (mVisualEffectNames == null)
            {
                mVisualEffectNames = new VisualEffectNameList(OnResourceChanged);
            }
            mVisualEffectNames.UnParse(outputStream);
            return(outputStream);
        }
Exemplo n.º 14
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Write(mScreenRatio);
                s.Write(mSize);
            }
Exemplo n.º 15
0
        protected override void Parse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Read(out mData.X);
            s.Read(out mData.Y);
        }
Exemplo n.º 16
0
        protected override void Parse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Read(out mMapId);

            s.Read(out mFlags);
            mFlags &= 0x3FF;

            s.Read(out mMapType);
            s.Read(out mImageId);
            mBounds = new RectangleValue(requestedApiVersion, handler, stream);
            s.Read(out mChannel);
            s.Read(out mOpKind);

            s.Read(out mOpArgMapId1);
            s.Read(out mOpArgMapId2);
            s.Read(out mOpArgMapId3);
            s.Read(out mOpArgMapId4);

            mOpArgValue1 = new Vector4ValueLE(requestedApiVersion, handler, stream);
            mOpArgValue2 = new Vector4ValueLE(requestedApiVersion, handler, stream);
            mOpArgValue3 = new Vector4ValueLE(requestedApiVersion, handler, stream);
            mOpArgValue4 = new Vector4ValueLE(requestedApiVersion, handler, stream);
        }
Exemplo n.º 17
0
            protected override void Parse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                mTimeRange = new Vector2ValueLE(requestedApiVersion, handler, stream);
                s.Read(out mEffectName, StringType.ZeroDelimited);
            }
Exemplo n.º 18
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Write(mIndex);
            s.Write(mEffectId);
        }
Exemplo n.º 19
0
            protected override void Parse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                mPosition = new Vector3ValueLE(requestedApiVersion, handler, stream);
                mVelocity = new Vector3ValueLE(requestedApiVersion, handler, stream);
                s.Read(out mTime);
            }
Exemplo n.º 20
0
        protected override void Parse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            mElements = new DataList <Element>(handler, stream);
            s.Read(out mFlags);
            //mFlags &= 0xF;
        }
Exemplo n.º 21
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Write(mTimeRate);
                mRateDir.UnParse(stream);
                mWiggleDir.UnParse(stream);
            }
Exemplo n.º 22
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                mPosition.UnParse(stream);
                mVelocity.UnParse(stream);
                s.Write(mTime);
            }
Exemplo n.º 23
0
            public override void UnParse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Write(mEmitScale);
                s.Write(mSizeScale);
                s.Write(mAlphaScale);
            }
Exemplo n.º 24
0
            protected override void Parse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Read(out mEmitScale);
                s.Read(out mSizeScale);
                s.Read(out mAlphaScale);
            }
Exemplo n.º 25
0
            protected override void WriteElement(Stream stream, Property element)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Write((ulong)element.Key);
                s.Write((byte)element.ValueType);
                element.UnParse(stream);
            }
Exemplo n.º 26
0
            protected override Property CreateElement(Stream stream)
            {
                var s   = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);
                var key = (PropertyKey)s.ReadUInt64();
                var val = (ValueType)s.BaseStream.ReadByte();

                return(Property.CreateInstance(0, elementHandler, val, key, stream));
            }
Exemplo n.º 27
0
            protected override void Parse(Stream stream)
            {
                var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

                s.Read(out mTimeRate);
                mRateDir   = new Vector3ValueLE(requestedApiVersion, handler, stream);
                mWiggleDir = new Vector3ValueLE(requestedApiVersion, handler, stream);
            }
Exemplo n.º 28
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Write(HashedName);
            s.Write((ulong)Shader);
            mProperties.UnParse(stream);
        }
Exemplo n.º 29
0
        public override void UnParse(Stream s)
        {
            var sw = new BinaryStreamWrapper(s, ByteOrder.LittleEndian);

            sw.Write(mData.R);
            sw.Write(mData.G);
            sw.Write(mData.B);
        }
Exemplo n.º 30
0
        protected override void Parse(Stream s)
        {
            var sw = new BinaryStreamWrapper(s, ByteOrder.LittleEndian);

            sw.Read(out mData.R);
            sw.Read(out mData.G);
            sw.Read(out mData.B);
        }
        public unsafe void TestMethod()
        {
            MemoryStream stream = new MemoryStream();
            BinaryStreamWrapper bs = new BinaryStreamWrapper(stream, false);
            Random rand = new Random();
            int seed = rand.Next();
            rand = new Random(seed);
            byte[] data = new byte[16];
            byte[] data2 = new byte[16];

            fixed (byte* lp = data)
            {
                for (int x = 0; x < 10000; x++)
                {
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(byte*)lp);
                    int skip = rand.Next(40) + 1;
                    bs.Position += skip;
                    bs.Position -= rand.Next(skip);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(sbyte*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(short*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(int*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(long*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(ushort*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(uint*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(ulong*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(NextDecimal(data, rand));
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(*(Guid*)lp);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(NextDate(data, rand));
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(NextSingle(data, rand));
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write(NextDouble(data, rand));
                    rand.NextBytes(data);
                    bool value = (*lp != 0);
                    while (rand.Next(4) < 2) bs.Write(value);

                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write7Bit(*(uint*)lp);
                    data[3] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(uint*)lp);
                    data[2] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(uint*)lp);
                    data[1] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(uint*)lp);

                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[7] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[6] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[5] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[4] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[3] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[2] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);
                    data[1] = 0;
                    while (rand.Next(4) < 2) bs.Write7Bit(*(ulong*)lp);

                    rand.NextBytes(data);
                    bs.Write(data, 0, data.Length);

                    while (rand.Next(4) < 2)
                    {
                        if (bs.Position > 100)
                        {
                            bs.Position -= 100;
                            int insertCount = rand.Next(16) + 1;
                            bs.InsertBytes(insertCount, 100);
                            bs.Write(data, 0, insertCount);
                            bs.Position -= insertCount;
                            bs.ReadAll(data2, 0, insertCount);
                            bs.Position -= insertCount;
                            bs.RemoveBytes(insertCount, 100);
                            bs.Position += 100;

                            for (int y = 0; y < insertCount; y++)
                            {
                                if (data[y] != data2[y])
                                    throw new Exception();
                            }
                        }
                    }
                }
                rand = new Random(seed);

                bs.Position = 0;

                for (int x = 0; x < 10000; x++)
                {
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadUInt8() != (*(byte*)lp)) throw new Exception();
                    int skip = rand.Next(40) + 1;
                    bs.Position += skip;
                    bs.Position -= rand.Next(skip);
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadInt8() != (*(sbyte*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadInt16() != (*(short*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadInt32() != (*(int*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadInt64() != (*(long*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadUInt16() != (*(ushort*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadUInt32() != (*(uint*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadUInt64() != (*(ulong*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadDecimal() != NextDecimal(data, rand)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadGuid() != (*(Guid*)lp)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadDateTime() != NextDate(data, rand)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadSingle() != NextSingle(data, rand)) throw new Exception();
                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.ReadDouble() != NextDouble(data, rand)) throw new Exception();
                    rand.NextBytes(data);
                    bool b2 = (*lp != 0);
                    while (rand.Next(4) < 2) if (bs.ReadBoolean() != b2) throw new Exception();

                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt32() != (*(uint*)lp)) throw new Exception();
                    data[3] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt32() != (*(uint*)lp)) throw new Exception();
                    data[2] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt32() != (*(uint*)lp)) throw new Exception();
                    data[1] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt32() != (*(uint*)lp)) throw new Exception();

                    rand.NextBytes(data);
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[7] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[6] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[5] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[4] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[3] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[2] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();
                    data[1] = 0;
                    while (rand.Next(4) < 2) if (bs.Read7BitUInt64() != (*(ulong*)lp)) throw new Exception();

                    rand.NextBytes(data);
                    bs.ReadAll(data2, 0, 16);
                    if (!data2.SequenceEqual<byte>(data)) throw new Exception();

                    while (rand.Next(4) < 2)
                    {
                        if (bs.Position > 100)
                        {
                            int insertCount = rand.Next(16);
                        }
                    }
                }
            }
        }
        public void Test()
        {
            MemoryPoolTest.TestMemoryLeak();
            const int count = 1000;
            MemoryStream ms = new MemoryStream();
            ms.Write(new byte[100000], 0, 100000);
            ms.Write(new byte[100000], 0, 100000);
            ms.Position = 0;
            BinaryStreamWrapper bs = new BinaryStreamWrapper(ms, false);
            Stopwatch sw = new Stopwatch();
            //DateTime b = DateTime.UtcNow;
            long b = 10;
            //Guid b = Guid.NewGuid() ;
            for (int x2 = 0; x2 < count; x2++)
            {
                bs.Position = 0;
                for (int x = 0; x < count; x++)
                {
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                }
            }

            sw.Start();
            for (int x2 = 0; x2 < count; x2++)
            {
                bs.Position = 0;
                for (int x = 0; x < count; x++)
                {
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    bs.Write(b);
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadDecimal();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt64();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt32();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadInt16();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.ReadByte();
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                    //bs.Write7Bit(b);
                }
            }
            sw.Stop();
            Assert.IsTrue(true);
            ms.Dispose();
            MemoryPoolTest.TestMemoryLeak();

            //MessageBox.Show((count * count * 10 / sw.Elapsed.TotalSeconds / 1000000).ToString());
        }