Reorganizes Project (#41)

This commit is contained in:
Kamron Batman 2019-08-02 18:13:40 -07:00 committed by GitHub
parent 08bf44af9a
commit 3614a66aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3499 changed files with 79 additions and 55 deletions

View file

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Reflection;
namespace Server
{
public delegate void ValidationEventHandler();
public static class ValidationQueue
{
public static event ValidationEventHandler StartValidation;
public static void Initialize()
{
StartValidation?.Invoke();
StartValidation = null;
}
}
public static class ValidationQueue<T>
{
private static List<T> m_Queue;
static ValidationQueue()
{
m_Queue = new List<T>();
ValidationQueue.StartValidation += ValidateAll;
}
public static void Add(T obj)
{
m_Queue.Add(obj);
}
private static void ValidateAll()
{
Type type = typeof(T);
MethodInfo m = type.GetMethod("Validate", BindingFlags.Instance | BindingFlags.Public);
if (m != null)
for (int i = 0; i < m_Queue.Count; ++i)
m.Invoke(m_Queue[i], null);
m_Queue.Clear();
m_Queue = null;
}
}
}