package com.yfd.platform.component.nettyclient;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@Component
@Slf4j
public class EventManager {

    // 存储事件 ID 和事件的映射
    private Map<String, Event> eventMap = new ConcurrentHashMap<>();

    // 注册事件
    public void registerEvent(String eventId, Event event) {
        if (eventMap.containsKey(eventId)) {
            return;
        }
        eventMap.put(eventId, event);
    }

    // 触发事件
    public void triggerEvent(String eventId, Object data) {
        Event event = eventMap.get(eventId);
        if (event != null) {
            // 触发事件
            event.trigger(data);
            // 触发后移除事件
            eventMap.remove(eventId);
        } else {
            log.error("没有发现事件eventId: " + eventId);
        }
    }
}
