home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1991-01-08 | 1.9 KB | 57 lines |
- (* ------------------------------------------------------ *)
- (* QUEUE.DEF *)
- (* Verwaltung von Queues (FIFO) *)
- (* (Auch mehrere gleichzeitig) *)
- (* (c) 1991 Dieter Kreimann & TOOLBOX *)
- (* ------------------------------------------------------ *)
- DEFINITION MODULE Queue;
-
- (* ------------------------------------------------------ *)
- (* Die Routinen geben im Programmier-Fehlerfall über *)
- (* Terminal.WriteString eine Meldung aus und brechen über *)
- (* HALT ab, wenn z.B. eine Queue vor Benutzung nicht er- *)
- (* stellt wurde oder wenn die Queue bei Pop oder Peep *)
- (* leer ist. *)
- (* ------------------------------------------------------ *)
-
- FROM SYSTEM IMPORT ADDRESS;
-
- TYPE
- tQueue;
-
- (*
- Der Datentyp tQueue ist opaque, damit kann man nur über
- die Routinen dieses Moduls auf die Objekte in der Queue
- zugreifen. Eine Variable des Typs tQueue muß immer vor
- der ersten Benutzung kreiert und sollte danach zerstört
- werden. Die in der Queue abgelegten Objekte können
- verschiedene Längen haben!
- *)
-
- PROCEDURE Create(VAR queue : tQueue);
-
- PROCEDURE Delete(VAR queue : tQueue);
-
- PROCEDURE Push(queue : tQueue;
- size : CARDINAL; addr : ADDRESS);
-
- PROCEDURE Pop( queue : tQueue;
- VAR size : CARDINAL; addr : ADDRESS);
-
- PROCEDURE Peep( queue : tQueue;
- VAR size : CARDINAL; addr : ADDRESS);
-
- PROCEDURE IsEmpty(queue : tQueue) : BOOLEAN;
-
- PROCEDURE NumEntries(queue : tQueue) : CARDINAL;
-
- PROCEDURE Reset(queue : tQueue);
-
- PROCEDURE Drop(queue : tQueue; num : CARDINAL);
-
- PROCEDURE Join(queueTop, queueBot : tQueue);
-
- END Queue.
- (* ------------------------------------------------------ *)
- (* Ende von QUEUE.DEF *)