package com.dy.rtuMw.server.msCenter; 
 | 
  
 | 
import com.dy.common.mw.UnitAdapterInterface; 
 | 
import com.dy.common.mw.UnitCallbackInterface; 
 | 
import com.dy.common.mw.UnitInterface; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2025/2/12 13:55 
 | 
 * @Description 
 | 
 */ 
 | 
public class MsCenterUnit  implements UnitInterface { 
 | 
  
 | 
    private static MsCenterUnit instance = new MsCenterUnit() ; 
 | 
  
 | 
    public static MsCenterUnitAdapter adapter ; 
 | 
    public static MsCenterConfigVo confVo ; 
 | 
  
 | 
    private static MsCenterManager manager ; 
 | 
  
 | 
    private MsCenterUnit(){} ; 
 | 
  
 | 
    public static MsCenterUnit getInstance(){ 
 | 
        return instance ; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void setAdapter(UnitAdapterInterface adapter) throws Exception { 
 | 
        if(adapter == null){ 
 | 
            throw new Exception("消息中心模块适配器对象不能为空!") ; 
 | 
        } 
 | 
        MsCenterUnit.adapter = (MsCenterUnitAdapter)adapter ; 
 | 
        MsCenterUnit.confVo = MsCenterUnit.adapter.getConfig() ; 
 | 
        if(MsCenterUnit.confVo == null){ 
 | 
            throw new Exception("消息中心模块配置对象不能为空!") ; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 初始化 
 | 
     */ 
 | 
    @Override 
 | 
    public void start(UnitCallbackInterface callback) throws Exception { 
 | 
        if(confVo.enable){ 
 | 
            manager = MsCenterManager.getInstance() ; 
 | 
            manager.initOption(confVo); 
 | 
            manager.start(1000L, confVo.notifyMsInterval, manager); 
 | 
            callback.call(null) ; 
 | 
            System.out.println("消息中心模块成功启动"); 
 | 
        }else{ 
 | 
            System.out.println("消息中心模块配置不启动"); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void stop(UnitCallbackInterface callback) throws Exception { 
 | 
        if(manager != null){ 
 | 
            manager.stop(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 存入消息 
 | 
     * @param msNode 
 | 
     */ 
 | 
    public void pushMs(MsObj msNode){ 
 | 
        if(manager != null){ 
 | 
            manager.pushMs(msNode) ; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 注册消息接收器 
 | 
     * @param webUrl 接收者web http post url 
 | 
     */ 
 | 
    public void registerMsReceiver(String webUrl){ 
 | 
        if(manager != null){ 
 | 
            manager.registerMsReceiver(webUrl) ; 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |