home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 05 / tricks / queue.def < prev    next >
Encoding:
Modula Definition  |  1991-01-08  |  1.9 KB  |  57 lines

  1. (* ------------------------------------------------------ *)
  2. (*                       QUEUE.DEF                        *)
  3. (*             Verwaltung von Queues (FIFO)               *)
  4. (*             (Auch mehrere gleichzeitig)                *)
  5. (*           (c) 1991 Dieter Kreimann & TOOLBOX           *)
  6. (* ------------------------------------------------------ *)
  7. DEFINITION MODULE Queue;
  8.  
  9. (* ------------------------------------------------------ *)
  10. (* Die Routinen geben im Programmier-Fehlerfall über      *)
  11. (* Terminal.WriteString eine Meldung aus und brechen über *)
  12. (* HALT ab, wenn z.B. eine Queue vor Benutzung nicht er-  *)
  13. (* stellt wurde oder wenn die Queue bei Pop oder Peep     *)
  14. (* leer ist.                                              *)
  15. (* ------------------------------------------------------ *)
  16.  
  17. FROM SYSTEM IMPORT ADDRESS;
  18.  
  19. TYPE
  20.   tQueue;
  21.  
  22. (*
  23.   Der Datentyp tQueue ist opaque, damit kann man nur über
  24.   die Routinen dieses Moduls auf die Objekte in der Queue
  25.   zugreifen. Eine Variable des Typs tQueue muß immer vor
  26.   der ersten Benutzung kreiert und sollte danach zerstört
  27.   werden. Die in der Queue abgelegten Objekte können
  28.   verschiedene Längen haben!
  29.  *)
  30.  
  31.   PROCEDURE Create(VAR queue : tQueue);
  32.  
  33.   PROCEDURE Delete(VAR queue : tQueue);
  34.  
  35.   PROCEDURE Push(queue : tQueue;
  36.                  size : CARDINAL; addr : ADDRESS);
  37.  
  38.   PROCEDURE Pop(    queue : tQueue;
  39.                 VAR size : CARDINAL; addr : ADDRESS);
  40.  
  41.   PROCEDURE Peep(    queue : tQueue;
  42.                  VAR size : CARDINAL; addr : ADDRESS);
  43.  
  44.   PROCEDURE IsEmpty(queue : tQueue) : BOOLEAN;
  45.  
  46.   PROCEDURE NumEntries(queue : tQueue) : CARDINAL;
  47.  
  48.   PROCEDURE Reset(queue : tQueue);
  49.  
  50.   PROCEDURE Drop(queue : tQueue; num : CARDINAL);
  51.  
  52.   PROCEDURE Join(queueTop, queueBot : tQueue);
  53.  
  54. END Queue.
  55. (* ------------------------------------------------------ *)
  56. (*                  Ende von QUEUE.DEF                    *)
  57.