2021-04-08 20:09:59 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace ET
|
|
|
|
|
{
|
|
|
|
|
public interface IEvent
|
|
|
|
|
{
|
|
|
|
|
Type GetEventType();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Event]
|
2021-04-20 00:25:04 +08:00
|
|
|
|
public abstract class AEvent<A>: IEvent
|
2021-04-08 20:09:59 +08:00
|
|
|
|
{
|
|
|
|
|
public Type GetEventType()
|
|
|
|
|
{
|
|
|
|
|
return typeof (A);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public abstract ETTask Run(A args);
|
|
|
|
|
|
|
|
|
|
public async ETTask Handle(A args)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await Run(args);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
Log.Error(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
[Event]
|
|
|
|
|
public abstract class AEvent_Sync<A> : IEvent where A : struct
|
|
|
|
|
{
|
|
|
|
|
public Type GetEventType()
|
|
|
|
|
{
|
|
|
|
|
return typeof(A);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public abstract void Run(A args);
|
|
|
|
|
|
|
|
|
|
public void Handle(A args)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
Run(args);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
Log.Error(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|