package com.genersoft.iot.vmp.gb28181.event;  
 | 
  
 | 
import com.genersoft.iot.vmp.gb28181.bean.Device;  
 | 
import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent;  
 | 
import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent;  
 | 
import org.springframework.beans.factory.annotation.Autowired;  
 | 
import org.springframework.context.ApplicationEventPublisher;  
 | 
import org.springframework.stereotype.Component;  
 | 
  
 | 
import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;  
 | 
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;  
 | 
import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent;  
 | 
import com.genersoft.iot.vmp.gb28181.event.online.OnlineEvent;  
 | 
  
 | 
/**      
 | 
 * @description:Event事件通知推送器,支持推送在线事件、离线事件  
 | 
 * @author: swwheihei  
 | 
 * @date:   2020年5月6日 上午11:30:50       
 | 
 */  
 | 
@Component  
 | 
public class EventPublisher {  
 | 
  
 | 
    @Autowired  
 | 
    private ApplicationEventPublisher applicationEventPublisher;  
 | 
      
 | 
    public void onlineEventPublish(Device device, String from) {  
 | 
        OnlineEvent onEvent = new OnlineEvent(this);  
 | 
        onEvent.setDevice(device);  
 | 
        onEvent.setFrom(from);  
 | 
        applicationEventPublisher.publishEvent(onEvent);  
 | 
    }  
 | 
      
 | 
    public void outlineEventPublish(String deviceId, String from){  
 | 
        OfflineEvent outEvent = new OfflineEvent(this);  
 | 
        outEvent.setDeviceId(deviceId);  
 | 
        outEvent.setFrom(from);  
 | 
        applicationEventPublisher.publishEvent(outEvent);  
 | 
    }  
 | 
  
 | 
    /**  
 | 
     * 平台心跳到期事件  
 | 
     * @param platformGbId  
 | 
     */  
 | 
    public void platformKeepaliveExpireEventPublish(String platformGbId){  
 | 
        PlatformKeepaliveExpireEvent platformNotRegisterEvent = new PlatformKeepaliveExpireEvent(this);  
 | 
        platformNotRegisterEvent.setPlatformGbID(platformGbId);  
 | 
        applicationEventPublisher.publishEvent(platformNotRegisterEvent);  
 | 
    }  
 | 
  
 | 
    /**  
 | 
     * 平台未注册事件  
 | 
     * @param platformGbId  
 | 
     */  
 | 
    public void platformNotRegisterEventPublish(String platformGbId){  
 | 
        PlatformNotRegisterEvent platformNotRegisterEvent = new PlatformNotRegisterEvent(this);  
 | 
        platformNotRegisterEvent.setPlatformGbID(platformGbId);  
 | 
        applicationEventPublisher.publishEvent(platformNotRegisterEvent);  
 | 
    }  
 | 
      
 | 
    /**  
 | 
     * 设备报警事件  
 | 
     * @param deviceAlarm  
 | 
     */  
 | 
    public void deviceAlarmEventPublish(DeviceAlarm deviceAlarm) {  
 | 
        AlarmEvent alarmEvent = new AlarmEvent(this);  
 | 
        alarmEvent.setAlarmInfo(deviceAlarm);  
 | 
        applicationEventPublisher.publishEvent(alarmEvent);  
 | 
    }  
 | 
      
 | 
}  
 |