internal override void InternalSerialize(NetOutgoingMessage lidgrenMsg) { base.InternalSerialize(lidgrenMsg); CachedQlz.Compress(ref Data, ref NumBytes); lidgrenMsg.Write(NumBytes); lidgrenMsg.Write(Data, 0, NumBytes); }
public void Serialize(NetOutgoingMessage lidgrenMsg) { lidgrenMsg.Write(KerbalName); CachedQlz.Compress(ref KerbalData, ref NumBytes); lidgrenMsg.Write(NumBytes); lidgrenMsg.Write(KerbalData, 0, NumBytes); }
public void Serialize(NetOutgoingMessage lidgrenMsg) { GuidUtil.Serialize(ContractGuid, lidgrenMsg); CachedQlz.Compress(ref Data, ref NumBytes); lidgrenMsg.Write(NumBytes); lidgrenMsg.Write(Data, 0, NumBytes); }
public void Serialize(NetOutgoingMessage lidgrenMsg) { lidgrenMsg.Write(Module); CachedQlz.Compress(ref Data, ref NumBytes); lidgrenMsg.Write(NumBytes); lidgrenMsg.Write(Data, 0, NumBytes); }
public static void ThreadSafeCompress(object lockObj, ref byte[] data, ref int numBytes) { lock (lockObj) { if (!CachedQlz.IsCompressed(data, numBytes)) { CachedQlz.Compress(ref data, ref numBytes); } } }
public void Serialize(NetOutgoingMessage lidgrenMsg) { lidgrenMsg.Write(FolderName); lidgrenMsg.Write(CraftName); lidgrenMsg.Write((int)CraftType); CachedQlz.Compress(ref Data, ref NumBytes); lidgrenMsg.Write(NumBytes); lidgrenMsg.Write(Data, 0, NumBytes); }
public void TestCheckArrayIsCompressed_NoIssues() { var numBytes = 5000; var text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); Assert.IsTrue(CachedQlz.IsCompressed(text, numBytes)); }
public void TestCheckArrayIsCompressed_ImpossibleToCompress() { var numBytes = 100; var data = new byte[numBytes]; new Random().NextBytes(data); CachedQlz.Compress(ref data, ref numBytes); Assert.IsTrue(CachedQlz.IsCompressed(data, numBytes)); }
public void CompressData_NoIssues() { var originalLength = 5000; var numBytes = originalLength; var text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); Assert.IsTrue(originalLength > numBytes); }
internal override void InternalSerialize(NetOutgoingMessage lidgrenMsg) { base.InternalSerialize(lidgrenMsg); lidgrenMsg.Write(SubspaceId); GuidUtil.Serialize(DominantVesselId, lidgrenMsg); GuidUtil.Serialize(WeakVesselId, lidgrenMsg); CachedQlz.Compress(ref FinalVesselData, ref NumBytes); lidgrenMsg.Write(NumBytes); lidgrenMsg.Write(FinalVesselData, 0, NumBytes); }
public void CompressData_ImpossibleToCompress() { var originalLength = 100; var numBytes = originalLength; var data = new byte[numBytes]; new Random().NextBytes(data); CachedQlz.Compress(ref data, ref numBytes); Assert.IsTrue(originalLength <= numBytes); }
public void DecompressThreadSafe() { const int iterations = 1000; var length = 100000; var data = Encoding.ASCII.GetBytes(TestCommon.RandomString(length)); CachedQlz.Compress(ref data, ref length); var task1Ok = true; var task1 = Task.Run(() => { try { for (var i = 0; i < iterations; i++) { var clone = TestCommon.CloneArray(data); CachedQlz.Decompress(ref clone, out _); } } catch (Exception) { task1Ok = false; } }); var task2Ok = true; var task2 = Task.Run(() => { try { for (var i = 0; i < iterations; i++) { var clone = TestCommon.CloneArray(data); CachedQlz.Decompress(ref clone, out _); } } catch (Exception) { task2Ok = false; } }); task1.Wait(); task2.Wait(); Assert.IsTrue(task1Ok); Assert.IsTrue(task2Ok); }
public void CompressThreadSafe() { const int iterations = 1000; const int originalLength = 100000; var task1Ok = true; var task1 = Task.Run(() => { try { for (var i = 0; i < iterations; i++) { var numBytes = originalLength; var text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); } } catch (Exception) { task1Ok = false; } }); var task2Ok = true; var task2 = Task.Run(() => { try { for (var i = 0; i < iterations; i++) { var numBytes = originalLength; var text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); } } catch (Exception) { task2Ok = false; } }); task1.Wait(); task2.Wait(); Assert.IsTrue(task1Ok); Assert.IsTrue(task2Ok); }
public void DecompressDataReuseArrays() { var numBytes = 4500; var text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); CachedQlz.Decompress(ref text, out _); numBytes = 5500; text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); var memBefore = GC.GetTotalMemory(true); CachedQlz.Decompress(ref text, out _); var memAfter = GC.GetTotalMemory(true); Assert.IsTrue(memAfter <= memBefore); }
public void CompressDataReuseArrays() { var numBytes = 4500; //Compress a text that uses 4500 bytes var text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); CachedQlz.Compress(ref text, ref numBytes); numBytes = 5500; //Now compress another text that uses 5500 bytes. As it has the same //"next exponential value of 2", it should reuse the array text = Encoding.ASCII.GetBytes(TestCommon.RandomString(numBytes)); var memBefore = GC.GetTotalMemory(true); CachedQlz.Compress(ref text, ref numBytes); var memAfter = GC.GetTotalMemory(true); Assert.IsTrue(memAfter <= memBefore); }
public void DecompressData_NoIssues() { const int originalLength = 5000; var numBytes = originalLength; var text = TestCommon.RandomString(numBytes); var data = Encoding.ASCII.GetBytes(text); var dataBackup = TestCommon.CloneArray(data); CachedQlz.Compress(ref data, ref numBytes); CachedQlz.Decompress(ref data, out var decompressedLength); Assert.AreEqual(originalLength, decompressedLength); var sequenceEqual = true; for (var i = 0; i < originalLength; i++) { sequenceEqual &= data[i] == dataBackup[i]; } Assert.IsTrue(sequenceEqual); }
public void DecompressData_ImpossibleToCompress() { const int originalLength = 100; var numBytes = originalLength; var data = new byte[numBytes]; new Random().NextBytes(data); var dataBackup = TestCommon.CloneArray(data); CachedQlz.Compress(ref data, ref numBytes); CachedQlz.Decompress(ref data, out var decompressedLength); Assert.AreEqual(originalLength, decompressedLength); var sequenceEqual = true; for (var i = 0; i < originalLength; i++) { sequenceEqual &= data[i] == dataBackup[i]; } Assert.IsTrue(sequenceEqual); }