namespace KYFramework.Network
{
    [ObjectSystem]
    public class ServerComponentAwakeSystem : AwakeSystem<ServerComponent>
    {
        public override void Awake(ServerComponent self)
        {
            self.Awake(self.Protocol);
            self.MessagePacker = new ProtobufPacker();
            self.MessageDispatcher = new OuterMessageDispatcher();


            Log.Debug("服务组件初始化完毕!");
        }

        
    }

    [ObjectSystem]
    public class ServerComponentAwake1System : AwakeSystem<ServerComponent, string>
    {
        public override void Awake(ServerComponent self, string address)
        {
            self.Awake(self.Protocol, address);
            self.MessagePacker = new ProtobufPacker();
            self.MessageDispatcher = new OuterMessageDispatcher();

            Log.Debug("服务组件初始化完毕!");
        }
    }

    [ObjectSystem]
    public class ServerComponentLoadSystem : LoadSystem<ServerComponent>
    {
        public override void Load(ServerComponent self)
        {
            self.MessagePacker = new ProtobufPacker();
            self.MessageDispatcher = new OuterMessageDispatcher();
        }
    }

    [ObjectSystem]
    public class ServerComponentUpdateSystem : UpdateSystem<ServerComponent>
    {
        public override void Update(ServerComponent self)
        {
            self.Update();
        }
    }
}