diff --git a/src/main/java/net/javase/hksup/starter/service/CmsServer.java b/src/main/java/net/javase/hksup/starter/service/CmsServer.java index ce8bc99..2546cc2 100644 --- a/src/main/java/net/javase/hksup/starter/service/CmsServer.java +++ b/src/main/java/net/javase/hksup/starter/service/CmsServer.java @@ -36,6 +36,9 @@ public class CmsServer { private HCISUPCMS.DEVICE_REGISTER_CB deviceRegisterCb; HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCISUPCMS.NET_EHOME_CMS_LISTEN_PARAM(); + private Runnable preStartCallback = null; + private Runnable stopCallback = null; + public CmsServer(HkSupSdkProperties supSdkProperties, ApplicationContext applicationContext) { this.supSdkProperties = supSdkProperties; this.applicationContext = applicationContext; @@ -157,6 +160,7 @@ public class CmsServer { */ void startCmsServer() { try { + Optional.ofNullable(preStartCallback).ifPresent(Runnable::run); cmsInit(); startCmsListen(); } catch (Exception ex) { @@ -164,6 +168,20 @@ public class CmsServer { } } + /** + * 初始化服务 前置回调 + */ + public void preStartCallback(Runnable callback) { + this.preStartCallback = callback; + } + + /** + * 设置停止服务后回调 + */ + public void stopCallback(Runnable callback) { + this.stopCallback = callback; + } + /** * 停止CMS服务,回收资源 */ @@ -174,6 +192,7 @@ public class CmsServer { hcisupcms.NET_ECMS_StopListen(CmsHandle); hcisupcms.NET_ECMS_Fini(); log.info("停止CMS注册服务成功!"); + Optional.ofNullable(stopCallback).ifPresent(Runnable::run); } } catch (Exception ex) { log.error("停止CMS注册服务失败: " + ex.getMessage(), ex);