package com.cwa.log.queue.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.cwa.log.queue.domain.BaseLog;
/**
* @author Pai
* @descirption 队列类
* 12.12.24
*/
public class LogQueue {
/**
* 两个列表进行切换工作 待修改
*/
private final List<BaseLog> firstList = Collections
.synchronizedList(new ArrayList<BaseLog>(10000));
private final List<BaseLog> secondList = Collections
.synchronizedList(new ArrayList<BaseLog>(10000));
/**
* 列表切换开关
*/
private volatile boolean swithFlag = false;
/**
* 向队列中添加数据
*
* @param obj
*/
public void add(BaseLog obj) {
if (swithFlag)
firstList.add(obj);
else
secondList.add(obj);
}
/**
* 获取待发送的队列,同时切换状态
*
* @return
*/
public List<BaseLog> getSendList() {
if (swithFlag) {
swithFlag = false;
return firstList;
} else {
swithFlag = true;
return secondList;
}
}
}