Class AgendaManager

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--AgendaManager
All Implemented Interfaces:
java.lang.Runnable

public class AgendaManager
extends java.lang.Thread


Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Method Summary
 void addAgenda(TaskCell Task)
           
 void addAgendaNOPROV(java.lang.String root_task, java.lang.String Message)
          Adds all Tasks in Tasks to Agenda that have NOPROV as thier provision.
 void DebugSched(java.lang.String str)
           
 void dip(TaskCell Task, ProvisionCell Parg)
           
 void distributeInputProvision(TaskCell Task, java.lang.String Provision, java.lang.String Value)
          The idea here is to get the list of receiver for each provision and distribute the data to the apropriate values of the receiving tasks.
 void distributeOutcomeProvision(TaskCell Task, ProvisionCell Parg)
           
 LinkedListQ getMsgList(java.lang.String message)
           
 void RemoveTasks(TaskCell T)
           
 void run_Scheduler()
          The Schedular takes a TaskQuCell off the TaskQ, merges the tasks in the TaskQuCell with Tasks, then checks to see if any of the tasks can be run immediately (because they have no input provisions), distributes input provisions, and checks to see if a task can be run as the input provisions are filled in.
 void run()
           
 boolean TaskCompleted(TaskCell T)
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

run_Scheduler

public void run_Scheduler()
                   throws CriticalAgentException,
                          NonCriticalAgentException
The Schedular takes a TaskQuCell off the TaskQ, merges the tasks in the TaskQuCell with Tasks, then checks to see if any of the tasks can be run immediately (because they have no input provisions), distributes input provisions, and checks to see if a task can be run as the input provisions are filled in. If a task can be run an AgendaCell is created and added to the AgendaQ. -MM 6/14/1999

CriticalAgentException
NonCriticalAgentException

distributeInputProvision

public void distributeInputProvision(TaskCell Task,
                                     java.lang.String Provision,
                                     java.lang.String Value)
The idea here is to get the list of receiver for each provision and distribute the data to the apropriate values of the receiving tasks.
  1. get the provision list
  2. look up each receiver
  3. update the inputs for that receiver
  4. put the updated recievers into the objectives list to be completed.
JRG


distributeOutcomeProvision

public void distributeOutcomeProvision(TaskCell Task,
                                       ProvisionCell Parg)

dip

public void dip(TaskCell Task,
                ProvisionCell Parg)

addAgenda

public void addAgenda(TaskCell Task)

TaskCompleted

public boolean TaskCompleted(TaskCell T)

RemoveTasks

public void RemoveTasks(TaskCell T)

addAgendaNOPROV

public void addAgendaNOPROV(java.lang.String root_task,
                            java.lang.String Message)
Adds all Tasks in Tasks to Agenda that have NOPROV as thier provision. Starts at the roottask, and recursively searchs all subtasks. -MPM


getMsgList

public LinkedListQ getMsgList(java.lang.String message)

DebugSched

public void DebugSched(java.lang.String str)