Exemple #1
0
        public static long GetPackedSize <T>(T obj)
        {
            try
            {
                var msgPack = new BoisSerializer();

                using (var mem = new MemoryStream())
                {
                    msgPack.Serialize(obj, mem);
                    mem.Seek(0, SeekOrigin.Begin);

                    var newObj = msgPack.Deserialize <T>(mem);

                    if (typeof(T).IsValueType)
                    {
                        if (!newObj.Equals(obj))
                        {
                            return(-2);
                        }
                    }
                    return(mem.Length);
                }
            }
            catch (Exception)
            {
                return(-1);
            }
        }
Exemple #2
0
 public void Initialize()
 {
     _bois      = new BoisSerializer();
     bion       = _bois.AsDynamic();
     bionStream = new MemoryStream();
     bionReader = new BinaryReader(bionStream);
     bionWriter = new BinaryWriter(bionStream);
 }
Exemple #3
0
		public void Initialize()
		{
			_bois = new BoisSerializer();
			bion = _bois.AsDynamic();
			bionStream = new MemoryStream();
			bionReader = new BinaryReader(bionStream);
			bionWriter = new BinaryWriter(bionStream);
		}
Exemple #4
0
        public static CacheFile LoadBtfFile(Stream _stream)
        {
            BoisSerializer.Initialize <CacheFile>();
            BoisSerializer boisSerializer = new BoisSerializer();
            var            _cache         = boisSerializer.Deserialize <CacheFile>(_stream);

            return(_cache);
        }
Exemple #5
0
 public static CacheFile LoadBtfFile(string _recPath)
 {
     using (var _stream = new FileStream(_recPath, FileMode.Open, FileAccess.Read))
     {
         BoisSerializer.Initialize <CacheFile>();
         BoisSerializer boisSerializer = new BoisSerializer();
         var            _cache         = boisSerializer.Deserialize <CacheFile>(_stream);
         _stream.Close();
         return(_cache);
     }
 }
Exemple #6
0
        public void TestingStructComplex(TestStructComplex init)
        {
            ResetBois();

            BoisSerializer.Initialize <TestStructComplex>();

            Bois.Serialize(init, TestStream);
            ResetStream();

            var final = Bois.Deserialize <TestStructComplex>(TestStream);

            SerializeAreEqual(init, final);
        }
Exemple #7
0
        public static void SaveCache2File(CacheFile _cache)
        {
#if UNITY_EDITOR
            string savePath = Application.streamingAssetsPath + "/rec.btf";
#else
            string savePath = Application.StartupPath + "/rec.btf";;
#endif
            using (var _fs = new FileStream(savePath, FileMode.Create))
            {
                BoisSerializer.Initialize <CacheFile>();
                var _serializer = new BoisSerializer();
                _serializer.Serialize <CacheFile>(_cache, _fs);
                _fs.Close();
            }
        }
Exemple #8
0
        public void TestBoisTypeCache_MultiThreaded()
        {
            var data = TestObjectGeneralNumbers.GetArray(100);

            Parallel.For(0, 20, i =>
            {
                using (var mem = new MemoryStream())
                {
                    var BoisSerializer = new BoisSerializer();
                    BoisSerializer.Serialize(data, mem);

                    mem.Seek(0, SeekOrigin.Begin);
                    BoisSerializer.Deserialize <TestObjectGeneralNumbers>(mem);
                }
            });
        }
Exemple #9
0
        public void TestingArrays(Array init)
        {
            ResetBois();

            BoisSerializer.Initialize(init.GetType());


            var arrayType = init.GetType();

            Bois.Serialize(init, arrayType, TestStream);
            ResetStream();

            var final = Bois.Deserialize(TestStream, arrayType);

            SerializeAreEqual(init, final);
        }
Exemple #10
0
        public void ThreadSafe_NormalTest()
        {
            var boisThreaded = new BoisSerializer();
            var init         = new PrimitiveTypes1();

            init.Initialize();
            PrimitiveTypes1 final;

            using (var iniToDeserialMem = new MemoryStream())
            {
                boisThreaded.Serialize(init, iniToDeserialMem);
                iniToDeserialMem.Seek(0, SeekOrigin.Begin);

                int done  = 0;
                var tasks = new Thread[500];
                for (int i = 0; i < tasks.Length; i++)
                {
                    var th = new Thread(
                        () =>
                    {
                        Thread.Sleep(50);
                        using (var mem = new MemoryStream())
                        {
                            boisThreaded.Serialize(init, mem);
                            mem.Seek(0, SeekOrigin.Begin);
                            final = boisThreaded.Deserialize <PrimitiveTypes1>(mem);
                        }
                        Interlocked.Increment(ref done);
                        AssertionHelper.AssertMembersAreEqual(init, final);
                    });
                    th.IsBackground = true;
                    th.Name         = "ThreadSafe_Test_" + i;
                    tasks[i]        = th;
                }
                foreach (var task in tasks)
                {
                    task.Start();
                }

                while (done < tasks.Length)
                {
                    Thread.Sleep(10);
                }
            }
        }
Exemple #11
0
        public void TestGenericCollection_Simple_int()
        {
            var init = new List <int>()
            {
                10,
                20,
                500
            };

            ResetBois();

            BoisSerializer.Initialize <List <int> >();

            Bois.Serialize(init, TestStream);
            ResetStream();

            var final = Bois.Deserialize <List <int> >(TestStream);

            init.Should().BeEquivalentTo(final);
        }
Exemple #12
0
 public static void ClearCache()
 {
     BoisSerializer.ClearCache();
 }
Exemple #13
0
 public static void Initialize <T>()
 {
     BoisSerializer.Initialize <T>();
 }
Exemple #14
0
 public static void Initialize(params Type[] types)
 {
     BoisSerializer.Initialize(types);
 }
Exemple #15
0
 public BoisLz4Serializer()
 {
     _serializer = new BoisSerializer();
 }
Exemple #16
0
		public void ThreadSafe_NormalTest()
		{
			var boisThreaded = new BoisSerializer();
			var init = new PrimitiveTypes1();
			init.Initialize();
			PrimitiveTypes1 final;

			using (var iniToDeserialMem = new MemoryStream())
			{
				boisThreaded.Serialize(init, iniToDeserialMem);
				iniToDeserialMem.Seek(0, SeekOrigin.Begin);

				int done = 0;
				var tasks = new Thread[500];
				for (int i = 0; i < tasks.Length; i++)
				{
					var th = new Thread(
						() =>
						{
							Thread.Sleep(50);
							using (var mem = new MemoryStream())
							{
								boisThreaded.Serialize(init, mem);
								mem.Seek(0, SeekOrigin.Begin);
								final = boisThreaded.Deserialize<PrimitiveTypes1>(mem);
							}
							Interlocked.Increment(ref done);
							AssertionHelper.AssertMembersAreEqual(init, final);
						});
					th.IsBackground = true;
					th.Name = "ThreadSafe_Test_" + i;
					tasks[i] = th;
				}
				foreach (var task in tasks)
				{
					task.Start();
				}

				while (done < tasks.Length)
				{
					Thread.Sleep(10);
				}
			}
		}