📄 taskqueue.java
字号:
package collector.queue;
/*
* TaskQueue.java
*
* Created on 2003年3月10日, 下午2:31
*/
import java.util.*;
import collector.common.*;
/**
*
* @author WangJun
*/
public class TaskQueue {
//private static Vector[] m_TaskBuffer ;
private static int m_max_task_num;
private static int CHANNEL_TASK_POS = 0; // taskchannel
private static int TASK_CLASS_POS = 1; //taskclass
// private static int PARA_CLASS_POS = 2; //paraclass
// private static int TASK_POS = 1; //TermTaskInfo
private static int MAX_POS_NUM = 2;
private static ArrayList[] m_TaskBuffer = new ArrayList[CollectorDefine.
MAX_TASKCHANNEL_NUM];
/** Creates a new instance of TaskQueue */
public TaskQueue(int m_max_task_num) {
TaskQueue.m_max_task_num = m_max_task_num;
for (int i = 0; i < m_max_task_num; i++) {
m_TaskBuffer[i] = null;
m_TaskBuffer[i] = new ArrayList(MAX_POS_NUM);
for (int j = 0; j < MAX_POS_NUM; j++) {
m_TaskBuffer[i].add(null);
}
}
}
public static int getTaskBufferNum(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
int m_num = 0;
m_num = m_TaskBuffer[m_taskno].size();
return m_num;
}
public static int clearTaskBuffer(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
if (m_channel_task == null) {
return -1;
}
m_channel_task.setStatus(CollectorDefine.TASK_FREE);
}
putTaskBuffer(m_taskno, m_channel_task);
putTaskBuffer(m_taskno, (TaskClass)null);
return 1;
}
public static int isTaskBufferValid(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return -1;
}
return 1;
}
/*
public static int setTaskBufferInvalid(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return -1;
}
m_channel_task = null;
return 1;
}
*/
/* public static int isLocalTaskChannel(int m_taskno, long m_pComputerId) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
taskchannel m_TaskChannel = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_TaskChannel = (taskchannel) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_TaskChannel == null) {
return -1;
}
if (m_TaskChannel.getHostId() != m_pComputerId) {
return -1;
}
return 1;
}
*/
public static int setTaskBufferUsed(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return -1;
}
m_channel_task.setStatus(CollectorDefine.TASK_USED);
putTaskBuffer(m_taskno, m_channel_task);
return 1;
}
public static int setTaskBufferFree(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return -1;
}
m_channel_task.setStatus(CollectorDefine.TASK_FREE);
putTaskBuffer(m_taskno, m_channel_task);
return 1;
}
public static int setTaskBufferReadyDel(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
System.out.println("setTaskBufferReadyDel In TaskQueue Error #1");
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
System.out.println("setTaskBufferReadyDel In TaskQueue Error #2");
return -1;
}
//we use dialDevId instand of task close time !!
m_channel_task.setTime(System.currentTimeMillis());
m_channel_task.setStatus(CollectorDefine.TASK_READY_DEL);
putTaskBuffer(m_taskno, m_channel_task);
return 1;
}
public static long getTaskBufferComputerId(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
long ret = -1;
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return -1;
}
return m_channel_task.getComputerId();
}
public static void setTaskBufferComputerId(int m_taskno, long m_computer_id) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return;
}
m_channel_task.setComputerId(m_computer_id);
}
public static int getTaskBufferStatus(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
int ret = -1;
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
return -1;
}
ret = m_channel_task.getStatus();
return ret;
}
public static int ifReadyDel(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
System.out.println("ifReadyDel In TaskQueue Error #1");
return -1;
}
int ret = -1;
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
System.out.println("ifReadyDel In TaskQueue Error #2");
return -1;
}
ret = m_channel_task.getStatus();
if (ret == CollectorDefine.TASK_READY_DEL) {
// wj modi 20040428 at nanjing
// if ((System.currentTimeMillis() -m_TaskChannel.getDialDevId() )>= 1)
// if ( (System.currentTimeMillis() - m_channel_task.getTime()) >= 100)
{
// wj modi 20040428 at nanjing
return 1;
}
}
return -1;
}
public static int isTaskBufferFree(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
System.out.println("isTaskBufferFree In TaskQueue Error #1");
return -1;
}
channel_task m_channel_task = null;
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
CHANNEL_TASK_POS);
}
if (m_channel_task == null) {
System.out.println("isTaskBufferFree In TaskQueue Error #2");
return -1;
}
if (m_channel_task.getStatus() == CollectorDefine.TASK_FREE) {
return 1;
}
return -1;
}
public static int initTaskBuffer(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
channel_task m_channel_task = new channel_task();
m_TaskBuffer[m_taskno].add(CHANNEL_TASK_POS, m_channel_task);
m_TaskBuffer[m_taskno].add(TASK_CLASS_POS, null);
return 1;
}
/* public static int putTaskBuffer(int m_taskno, int m_termno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
m_TaskBuffer[m_taskno].set(CHANNEL_TASK_POS, paraclass);
return 1;
}
*/
public static int putTaskBuffer(int m_taskno, TaskClass taskclass) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
m_TaskBuffer[m_taskno].set(TASK_CLASS_POS, taskclass);
return 1;
}
public static int putTaskBuffer(int m_taskno, channel_task m_channel_task) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
if (m_taskno >= TaskQueue.m_max_task_num) {
return CollectorDefine.OVER_BUFFER_NUM;
}
m_TaskBuffer[m_taskno].set(CHANNEL_TASK_POS, m_channel_task);
return 1;
}
/* public static int putTaskBuffer(int m_taskno, TermTaskInfo m_pTermTaskInfo) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return -1;
}
m_TaskBuffer[m_taskno].set(TASK_POS, m_pTermTaskInfo);
return 1;
}
*/
/* public static ParaClass getTaskBufferPa(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return null;
}
if (m_taskno >= TaskQueue.m_max_task_num) {
return null;
}
if (m_TaskBuffer[m_taskno].size() > PARA_CLASS_POS) {
return (ParaClass) m_TaskBuffer[m_taskno].get(PARA_CLASS_POS);
}
return null;
}
*/
public static TaskClass getTaskBufferTa(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return null;
}
if (m_TaskBuffer[m_taskno].size() > TASK_CLASS_POS) {
return (TaskClass) m_TaskBuffer[m_taskno].get(TASK_CLASS_POS);
}
return null;
}
/*
public static taskchannel getTaskBufferTaCh(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return null;
}
if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
return (taskchannel) m_TaskBuffer[m_taskno].get(CHANNEL_TASK_POS);
}
return null;
}
*/
/* public static TermTaskInfo getTaskBufferTask(int m_taskno) {
if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
return null;
}
if (m_TaskBuffer[m_taskno].size() > TASK_POS) {
return (TermTaskInfo) m_TaskBuffer[m_taskno].get(TASK_POS);
}
return null;
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -