/// <summary> /// Asserts that two configurations have the same properties. /// </summary> private static void AssertConfigsAreEqual(IEvictionPolicy x, IEvictionPolicy y) { if (x == null) { Assert.IsNull(y); return; } Assert.AreEqual(x.GetType(), y.GetType()); var px = (EvictionPolicyBase)x; var py = (EvictionPolicyBase)y; Assert.AreEqual(px.BatchSize, py.BatchSize); Assert.AreEqual(px.MaxSize, py.MaxSize); Assert.AreEqual(px.MaxMemorySize, py.MaxMemorySize); }
/// <summary> /// Writes to the specified writer. /// </summary> internal static void Write(IBinaryRawWriter writer, IEvictionPolicy policy) { if (policy == null) { writer.WriteByte(0); return; } var p = policy as EvictionPolicyBase; if (p == null) { throw new NotSupportedException( string.Format("Unsupported Eviction Policy: {0}. Only predefined eviction policy types " + "are supported: {1}, {2}", policy.GetType(), typeof(LruEvictionPolicy), typeof(FifoEvictionPolicy))); } writer.WriteByte(p is FifoEvictionPolicy ? (byte)1 : (byte)2); writer.WriteInt(p.BatchSize); writer.WriteInt(p.MaxSize); writer.WriteLong(p.MaxMemorySize); }
/// <summary> /// Writes to the specified writer. /// </summary> internal static void Write(IBinaryRawWriter writer, IEvictionPolicy policy) { if (policy == null) { writer.WriteByte(0); return; } var p = policy as EvictionPolicyBase; if (p == null) { throw new NotSupportedException( string.Format("Unsupported Eviction Policy: {0}. Only predefined eviction policy types " + "are supported: {1}, {2}", policy.GetType(), typeof (LruEvictionPolicy), typeof (FifoEvictionPolicy))); } writer.WriteByte(p is FifoEvictionPolicy ? (byte) 1 : (byte) 2); writer.WriteInt(p.BatchSize); writer.WriteInt(p.MaxSize); writer.WriteLong(p.MaxMemorySize); }