00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef QUEUE_H
00022 #define QUEUE_H
00023 #include <string>
00024 #include <list>
00025 #include <vector>
00026 #include <iostream>
00027
00028 #include "Task.h"
00029 #include "PGAgentInfo.h"
00030
00031 using namespace std;
00032
00045 class Queue
00046 {
00047 public:
00052 Queue(){}
00057 virtual ~Queue(){}
00058
00064 virtual list<string> getInWaitTasks()=0;
00070 virtual list<string> getTerminatedTasks()=0;
00076 virtual list<string> getInUseTasks()=0;
00082 virtual list<string> getExpiredTasks()=0;
00083
00089 virtual void saveTask(Task* aDescriptor)=0;
00094 virtual void updateAging()=0;
00095
00101 virtual void changeStateToInWait(string& aIdTask)=0;
00107 virtual void changeStateToInUse(string& aIdTask)=0;
00113 virtual void changeStateToExpired(string& aIdTask)=0;
00119 virtual void changeStateToTerminated(string& aIdTask)=0;
00120
00121
00122
00123
00129 virtual list<string> orderInWaitTasks()=0;
00130
00139 virtual bool extractTaskToExec(PGAgentInfo * aAgent,Task * aDesc,string& aIp,string& aPort)=0;
00140
00147 virtual void updateAdvanceTask(string& aTaskId,string& value)=0;
00148
00155 virtual list<vector<string > > getInformations(string aTaskId)=0;
00156
00163 virtual void addTaskAgentInUse(string aTask,string aAgent)=0;
00164
00172 virtual void deleteTaskAgentInUse(string aAgent,bool aError)=0;
00173
00179 virtual void checkTimeout()=0;
00180
00185 virtual void eraseBase()=0;
00186
00187 };
00188
00189 #endif