Cleanup/Housekeeping (#242)

This commit is contained in:
Kamron Batman 2020-09-12 15:31:21 -07:00 committed by GitHub
parent 90ede0659f
commit 741e8d8300
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
228 changed files with 6292 additions and 2690 deletions

View file

@ -1,6 +1,6 @@
/*************************************************************************
* ModernUO *
* Copyright (C) 2019-2020 - ModernUO Development Team *
* Copyright 2019-2020 - ModernUO Development Team *
* Email: hi@modernuo.com *
* File: AsyncWriter.cs *
* *
@ -62,7 +62,9 @@ namespace Server
set
{
if (m_Mem.Length > 0)
{
Enqueue(m_Mem);
}
m_Mem = value;
m_Bin = new BinaryWriter(m_Mem, Utility.UTF8WithEncoding);
@ -277,49 +279,73 @@ namespace Server
public void Write(Map value)
{
if (value != null)
{
Write((byte)value.MapIndex);
}
else
{
Write((byte)0xFF);
}
}
public void Write(Race value)
{
if (value != null)
{
Write((byte)value.RaceIndex);
}
else
{
Write((byte)0xFF);
}
}
public void WriteEntity(IEntity value)
{
if (value?.Deleted != false)
{
Write(Serial.MinusOne);
}
else
{
Write(value.Serial);
}
}
public void Write(Item value)
{
if (value?.Deleted != false)
{
Write(Serial.MinusOne);
}
else
{
Write(value.Serial);
}
}
public void Write(Mobile value)
{
if (value?.Deleted != false)
{
Write(Serial.MinusOne);
}
else
{
Write(value.Serial);
}
}
public void Write(BaseGuild value)
{
if (value == null)
{
Write(0);
}
else
{
Write(value.Serial);
}
}
public void WriteItem<T>(T value) where T : Item
@ -355,16 +381,26 @@ namespace Server
public void WriteItemList<T>(List<T> list, bool tidy) where T : Item
{
if (tidy)
{
for (var i = 0; i < list.Count;)
{
if (list[i].Deleted)
{
list.RemoveAt(i);
}
else
{
++i;
}
}
}
Write(list.Count);
for (var i = 0; i < list.Count; ++i)
{
Write(list[i]);
}
}
public void Write(HashSet<Item> set)
@ -374,11 +410,17 @@ namespace Server
public void Write(HashSet<Item> set, bool tidy)
{
if (tidy) set.RemoveWhere(item => item.Deleted);
if (tidy)
{
set.RemoveWhere(item => item.Deleted);
}
Write(set.Count);
foreach (var item in set) Write(item);
foreach (var item in set)
{
Write(item);
}
}
public void WriteItemSet<T>(HashSet<T> set) where T : Item
@ -388,11 +430,17 @@ namespace Server
public void WriteItemSet<T>(HashSet<T> set, bool tidy) where T : Item
{
if (tidy) set.RemoveWhere(item => item.Deleted);
if (tidy)
{
set.RemoveWhere(item => item.Deleted);
}
Write(set.Count);
foreach (var item in set) Write(item);
foreach (var item in set)
{
Write(item);
}
}
public void Write(List<Mobile> list)
@ -403,16 +451,26 @@ namespace Server
public void Write(List<Mobile> list, bool tidy)
{
if (tidy)
{
for (var i = 0; i < list.Count;)
{
if (list[i].Deleted)
{
list.RemoveAt(i);
}
else
{
++i;
}
}
}
Write(list.Count);
for (var i = 0; i < list.Count; ++i)
{
Write(list[i]);
}
}
public void WriteMobileList<T>(List<T> list) where T : Mobile
@ -423,16 +481,26 @@ namespace Server
public void WriteMobileList<T>(List<T> list, bool tidy) where T : Mobile
{
if (tidy)
{
for (var i = 0; i < list.Count;)
{
if (list[i].Deleted)
{
list.RemoveAt(i);
}
else
{
++i;
}
}
}
Write(list.Count);
for (var i = 0; i < list.Count; ++i)
{
Write(list[i]);
}
}
public void Write(HashSet<Mobile> set)
@ -442,11 +510,17 @@ namespace Server
public void Write(HashSet<Mobile> set, bool tidy)
{
if (tidy) set.RemoveWhere(mobile => mobile.Deleted);
if (tidy)
{
set.RemoveWhere(mobile => mobile.Deleted);
}
Write(set.Count);
foreach (var mob in set) Write(mob);
foreach (var mob in set)
{
Write(mob);
}
}
public void WriteMobileSet<T>(HashSet<T> set) where T : Mobile
@ -456,11 +530,17 @@ namespace Server
public void WriteMobileSet<T>(HashSet<T> set, bool tidy) where T : Mobile
{
if (tidy) set.RemoveWhere(mob => mob.Deleted);
if (tidy)
{
set.RemoveWhere(mob => mob.Deleted);
}
Write(set.Count);
foreach (var mob in set) Write(mob);
foreach (var mob in set)
{
Write(mob);
}
}
public void Write(List<BaseGuild> list)
@ -471,16 +551,26 @@ namespace Server
public void Write(List<BaseGuild> list, bool tidy)
{
if (tidy)
{
for (var i = 0; i < list.Count;)
{
if (list[i].Disbanded)
{
list.RemoveAt(i);
}
else
{
++i;
}
}
}
Write(list.Count);
for (var i = 0; i < list.Count; ++i)
{
Write(list[i]);
}
}
public void WriteGuildList<T>(List<T> list) where T : BaseGuild
@ -491,16 +581,26 @@ namespace Server
public void WriteGuildList<T>(List<T> list, bool tidy) where T : BaseGuild
{
if (tidy)
{
for (var i = 0; i < list.Count;)
{
if (list[i].Disbanded)
{
list.RemoveAt(i);
}
else
{
++i;
}
}
}
Write(list.Count);
for (var i = 0; i < list.Count; ++i)
{
Write(list[i]);
}
}
public void Write(HashSet<BaseGuild> set)
@ -510,11 +610,17 @@ namespace Server
public void Write(HashSet<BaseGuild> set, bool tidy)
{
if (tidy) set.RemoveWhere(guild => guild.Disbanded);
if (tidy)
{
set.RemoveWhere(guild => guild.Disbanded);
}
Write(set.Count);
foreach (var guild in set) Write(guild);
foreach (var guild in set)
{
Write(guild);
}
}
public void WriteGuildSet<T>(HashSet<T> set) where T : BaseGuild
@ -524,11 +630,17 @@ namespace Server
public void WriteGuildSet<T>(HashSet<T> set, bool tidy) where T : BaseGuild
{
if (tidy) set.RemoveWhere(guild => guild.Disbanded);
if (tidy)
{
set.RemoveWhere(guild => guild.Disbanded);
}
Write(set.Count);
foreach (var guild in set) Write(guild);
foreach (var guild in set)
{
Write(guild);
}
}
private void Enqueue(MemoryStream mem)
@ -578,20 +690,28 @@ namespace Server
lock (m_Owner.m_WriteQueue)
{
if ((lastCount = m_Owner.m_WriteQueue.Count) > 0)
{
mem = m_Owner.m_WriteQueue.Dequeue();
}
}
if (mem?.Length > 0)
{
mem.WriteTo(m_Owner.m_File);
}
} while (lastCount > 1);
if (m_Owner.m_Closed)
{
m_Owner.m_File.Close();
}
ThreadCount--;
if (ThreadCount <= 0)
{
World.NotifyDiskWriteComplete();
}
}
}
}