   import javax.realtime.*;

   public class Agent extends NoHeapRealtimeThread
   {
      public Agent(FireMissile controller, int role, String code, PriorityParameters pp, MemoryArea ma)
      {
         super(pp, ma);
         myController = controller;
         authorization = code;
         myRole = role;
      }
   
      private FireMissile myController;
      private String authorization;
      private int myRole;
   
      public void run()
      {
         boolean result;
         System.out.println("Agent running");
         if(myRole == 1) 
           result = myController.fire1(authorization);
         else
           result = myController.fire2(authorization);
         System.out.println("Missile 1 fired!!!! " +result); 
         System.out.println("HeapMemory consumed = " 
                             +HeapMemory.instance().memoryConsumed());
         System.out.println("ImmortalMemory consumed = " 
                             +ImmortalMemory.instance().memoryConsumed());
         try
         {
           sleep(10000);
           System.out.println("Preparing for second missile" );
         }
         catch(InterruptedException ie) {};
         if(myRole == 1) 
           result = myController.fire1(authorization);
         else
           result = myController.fire2(authorization);
         System.out.println("Missile 2 fired!!!! " +result);
         System.out.println("HeapMemory consumed = " 
                             +HeapMemory.instance().memoryConsumed());
         System.out.println("ImmortalMemory consumed = " 
                             +ImmortalMemory.instance().memoryConsumed()); 

      }
   }
