changeset 333:cf9072608fe4

no need TYPE SKIP.
author sugi
date Mon, 07 Apr 2014 01:37:59 +0900
parents 6b82dae5d537
children c0c00f8f5525 174ea66bf28a
files src/alice/topology/manager/keeparive/CreateSchedule.java src/alice/topology/manager/keeparive/ListManager.java src/alice/topology/manager/keeparive/RemoveTask.java src/alice/topology/manager/keeparive/TaskExecuter.java src/alice/topology/manager/keeparive/TaskType.java
diffstat 5 files changed, 20 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/alice/topology/manager/keeparive/CreateSchedule.java	Sat Apr 05 18:10:16 2014 +0900
+++ b/src/alice/topology/manager/keeparive/CreateSchedule.java	Mon Apr 07 01:37:59 2014 +0900
@@ -17,7 +17,6 @@
 	public void run() {
 		ListManager manager = info1.asClass(ListManager.class);
 		TaskInfo newTask = info2.asClass(TaskInfo.class);
-		System.out.println("addTask");
 		manager.addTask(newTask);
 		ods.update("_WAITINGLIST", manager);
 		new CheckExistTask();
--- a/src/alice/topology/manager/keeparive/ListManager.java	Sat Apr 05 18:10:16 2014 +0900
+++ b/src/alice/topology/manager/keeparive/ListManager.java	Mon Apr 07 01:37:59 2014 +0900
@@ -51,8 +51,23 @@
 		list.add(cnt, newInfo);
 	}
 	
-	public void deleteTask(TaskInfo task){	
-		// delete task
+	public boolean deleteTask(TaskInfo task){
+		boolean matchFlag = false;
+		int cnt = 0;
+		for (TaskInfo t: list){
+			if (t.getType().equals(task.getType())){
+				matchFlag = true;
+				if (cnt+1 < list.size() ){ // next task exists.
+					TaskInfo next = list.get(cnt+1);
+					next.setSleepTime(next.getSleepTime()+task.getSleepTime());
+				}
+				list.remove(cnt);
+				break;
+			} else {
+				cnt++;
+			}
+		}	
+		return matchFlag;
 	}
 	
 	public void show(){
--- a/src/alice/topology/manager/keeparive/RemoveTask.java	Sat Apr 05 18:10:16 2014 +0900
+++ b/src/alice/topology/manager/keeparive/RemoveTask.java	Mon Apr 07 01:37:59 2014 +0900
@@ -22,15 +22,8 @@
 			// case: remove task is state countdown.
 			exec.skip();
 		} else {
-			boolean removeFlag = false;
 			// case: remove task is still in the waiting queue.
-			for (TaskInfo t: list.getTaskList()){
-				if (t.getType().equals(task.getType())){
-					list.getTaskList().remove(t); // this operation should be executed by list Manager.
-					removeFlag = true;
-					break;
-				}
-			}
+			boolean removeFlag = list.deleteTask(task);
 			if (!removeFlag){
 				ods.put("_REMOVETASK", task);
 			}
--- a/src/alice/topology/manager/keeparive/TaskExecuter.java	Sat Apr 05 18:10:16 2014 +0900
+++ b/src/alice/topology/manager/keeparive/TaskExecuter.java	Mon Apr 07 01:37:59 2014 +0900
@@ -28,12 +28,7 @@
 	public synchronized void run()  {
 		ListManager list = info.asClass(ListManager.class);
 		if (list.getTaskList().size() == 0){
-			if (remainingTime !=0){
-				TaskInfo info = new TaskInfo(TaskType.SKIP);
-				info.setSleepTime(remainingTime);
-				remainingTime = 0;
-				list.addTask(info);
-			}
+			remainingTime = 0;
 			ods.update("_WAITINGLIST", list);
 		} else {
 			nowTask = list.getTaskList().poll();
@@ -67,6 +62,7 @@
 					new RespondPing(nowTask.getReturnKey());
 				} else if (nowTask.getType() == TaskType.CLOSE) {
 					// no response from the Remote DataSegment. So close this connection.
+					System.out.println("SHOTDOWN");
 					DataSegment.get(nowTask.getManagerKey()).close();
 				}
 			}
--- a/src/alice/topology/manager/keeparive/TaskType.java	Sat Apr 05 18:10:16 2014 +0900
+++ b/src/alice/topology/manager/keeparive/TaskType.java	Mon Apr 07 01:37:59 2014 +0900
@@ -3,5 +3,4 @@
 public enum TaskType {
 	PING,
 	CLOSE,
-	SKIP,
 }