Улучшена передача контекста (не нарушается принцип ответственности), добавлено логгирование, переработан Boot который собирает все древо приложения, улучшен протокол
This commit is contained in:
@@ -1,44 +1,81 @@
|
||||
package com.rosetta.im;
|
||||
|
||||
import com.rosetta.im.event.EventManager;
|
||||
import com.rosetta.im.executors.Executor0Handshake;
|
||||
import com.rosetta.im.listeners.ServerStopListener;
|
||||
import com.rosetta.im.logger.Logger;
|
||||
import com.rosetta.im.logger.enums.Color;
|
||||
import com.rosetta.im.logger.enums.LogLevel;
|
||||
import com.rosetta.im.packet.Packet0Handshake;
|
||||
|
||||
import io.orprotocol.packet.PacketManager;
|
||||
|
||||
/**
|
||||
* Boot отвечает за инициализацию всех пакетов и их обработчиков,
|
||||
* а так же событий приложения. Этот Boot отвечает за приложение, а не за протокол.
|
||||
*/
|
||||
public class Boot {
|
||||
|
||||
private PacketManager packetManager;
|
||||
private EventManager eventManager;
|
||||
private Logger logger;
|
||||
|
||||
public Boot() {
|
||||
this.packetManager = new PacketManager();
|
||||
this.eventManager = new EventManager();
|
||||
this.logger = new Logger(LogLevel.INFO);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить менеджер пакетов приложения
|
||||
* @return PacketManager
|
||||
*/
|
||||
public PacketManager getPacketManager() {
|
||||
return this.packetManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Инициализация всех пакетов и их обработчиков
|
||||
* Получить менеджер событий приложения
|
||||
* @return EventManager
|
||||
*/
|
||||
public EventManager getEventManager() {
|
||||
return this.eventManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить логгер приложения
|
||||
* @return Logger
|
||||
*/
|
||||
public Logger getLogger() {
|
||||
return this.logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Регистрация пакетов, обработчиков, событий приложения
|
||||
* @return Boot
|
||||
*/
|
||||
public Boot bootstrap() {
|
||||
this.registerAllPackets();
|
||||
this.registerAllExecutors();
|
||||
this.registerAllEvents();
|
||||
this.printBootMessage();
|
||||
return this;
|
||||
}
|
||||
|
||||
private void registerAllEvents() {
|
||||
this.eventManager.registerListener(new ServerStopListener(this.logger));
|
||||
}
|
||||
|
||||
private void registerAllPackets() {
|
||||
this.packetManager.registerPacket(0, Packet0Handshake.class);
|
||||
}
|
||||
|
||||
private void registerAllExecutors() {
|
||||
this.packetManager.registerExecutor(0, Executor0Handshake.class);
|
||||
this.packetManager.registerExecutor(0, new Executor0Handshake(this.eventManager));
|
||||
}
|
||||
|
||||
private void printBootMessage() {
|
||||
System.out.println("Bootstrapping completed. All packets and executors are registered.");
|
||||
System.out.println("Total packets registered: " + this.packetManager.totalPackets());
|
||||
System.out.println("Total executors registered: " + this.packetManager.totalExecutors());
|
||||
this.logger.log(LogLevel.INFO, Color.GREEN + "Boot successful complete");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user