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); } }
public void Initialize() { _bois = new BoisSerializer(); bion = _bois.AsDynamic(); bionStream = new MemoryStream(); bionReader = new BinaryReader(bionStream); bionWriter = new BinaryWriter(bionStream); }
public static CacheFile LoadBtfFile(Stream _stream) { BoisSerializer.Initialize <CacheFile>(); BoisSerializer boisSerializer = new BoisSerializer(); var _cache = boisSerializer.Deserialize <CacheFile>(_stream); return(_cache); }
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); } }
public void TestingStructComplex(TestStructComplex init) { ResetBois(); BoisSerializer.Initialize <TestStructComplex>(); Bois.Serialize(init, TestStream); ResetStream(); var final = Bois.Deserialize <TestStructComplex>(TestStream); SerializeAreEqual(init, final); }
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(); } }
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); } }); }
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); }
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); } } }
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); }
public static void ClearCache() { BoisSerializer.ClearCache(); }
public static void Initialize <T>() { BoisSerializer.Initialize <T>(); }
public static void Initialize(params Type[] types) { BoisSerializer.Initialize(types); }
public BoisLz4Serializer() { _serializer = new BoisSerializer(); }
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); } } }