package org.infosec.ismp.manager.server.event.eventRmiImpl;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.infosec.ismp.manager.rmi.event.modle.Eventmoni;
import org.infosec.ismp.manager.rmi.event.modle.Eventrealdisp;
/**
* 通道,用于存放数据以便RMI取
* @author wudengke 2009-6-29
*
*/
public class EventRecivePipe {
private static final int MAX_SIZE=800;
private static final int Alert_MAX_SIZE=80;
public LinkedList<Eventmoni> evenmonidisp = null;
public LinkedList<Eventrealdisp> eventrealdisp = null;
// public LinkedList<Alert> alertEvents = null;
public List<Object> dates = null;
public List<Object> getDates() {
// System.out.println("--*-*-*-**-" + dates.size());
return dates;
}
public EventRecivePipe() {
evenmonidisp = new LinkedList<Eventmoni>();
eventrealdisp = new LinkedList<Eventrealdisp>();
dates = new ArrayList<Object>();
}
public synchronized void addEvents(Eventmoni obj) {
// System.out.println("--addEvents(Eventmoni obj)--" + obj);
if (obj != null) {
evenmonidisp.addFirst(obj);
Object[] oo = new Object[]{obj.getFaciIp(),obj.getCurrValue(),obj.getTime()};
dates.add(oo);
}
if(evenmonidisp.size()>MAX_SIZE){
evenmonidisp.removeLast();
}
}
public synchronized void addRealtimeEvents(Eventrealdisp obj) {
if (obj != null) {
eventrealdisp.addFirst(obj);
}
if(eventrealdisp.size()>MAX_SIZE){
eventrealdisp.removeLast();
}
}
// public synchronized void addAlertEvents(Alert vAlert){
// if (vAlert != null){
// alertEvents.addFirst(vAlert);
// }
// if(alertEvents.size() > Alert_MAX_SIZE){
// alertEvents.removeLast();
// }
// }
public synchronized List<Eventmoni> getNewEvents() {
List<Eventmoni> results = new ArrayList<Eventmoni>();
// System.out.println("get");
// for(SimpleAlert cloneAlert : simpleAlerts){
// results.add(cloneAlert);
// }
for(int i=0;i<evenmonidisp.size();i++){
Eventmoni alert = (Eventmoni)evenmonidisp.get(i);
results.add(alert);
}
return results;
}
public synchronized List<Eventrealdisp> getRealtimeEvents() {
List<Eventrealdisp> results = new ArrayList<Eventrealdisp>();
for(int i=0;i<eventrealdisp.size();i++){
Eventrealdisp alert = (Eventrealdisp)eventrealdisp.get(i);
results.add(alert);
}
return results;
}
// public synchronized List<Alert> getAlertEvents(){
// List<Alert> results = new ArrayList<Alert>();
//
// for(int i = 0; i < alertEvents.size(); i++){
// Alert event = (Alert) alertEvents.get(i);
// results.add(event);
// }
// return results;
// }
public synchronized void clearEvents(){
evenmonidisp.clear();
dates.clear();
}
public synchronized void clearRealtimeEvents(){
eventrealdisp.clear();
}
// public synchronized void clearAlertEvents(){
// alertEvents.clear();
// }
public static void main(String[] args) {
/*List srcList = new LinkedList();
List destList = new LinkedList();
for(int i=0;i<10;i++){
SimpleAlert alert = new SimpleAlert();
alert.setAnalyzerClass("Test"+i);
srcList.add(alert);
}
//
for(int i=0;i<srcList.size();i++){
SimpleAlert alert = (SimpleAlert)srcList.get(i);
destList.add(alert);
}
srcList.clear();
for(int i =0;i<destList.size();i++){
SimpleAlert alert = (SimpleAlert)destList.get(i);
System.out.println("alert is :"+alert);
}*/
}
}