home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Buffers.def < prev    next >
Text File  |  1994-05-25  |  4KB  |  132 lines

  1. |##########|
  2. |#MAGIC   #|CLABLLBE
  3. |#PROJECT #|"ImportHelp"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|-x---x--x----xx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x-xx-x----------
  9. |##########|
  10. DEFINITION MODULE Buffers;
  11.  
  12. EXCEPTION
  13.   |
  14.   | BufferEmpty : Durch Get, falls der Puffer bereits leer ist
  15.   |
  16.   BufferEmpty : "Buffer empty";
  17.   |
  18.   | NotInBuffer : Durch Remove, falls Objekt nicht im Puffer
  19.   |
  20.   NotInBuffer : "Object not in buffer";
  21.  
  22.   DEFINITION MODULE Queues(type : ANYPTR);
  23.     |
  24.     | Queues
  25.     |
  26.     |  FIFO-Puffer:
  27.     |
  28.     |  Elemente können beliebig in den Puffer eingefügt werden und in der
  29.     |  selben Reihenfolge wieder ausgelesen werden, typische Anwendung ist
  30.     |  eine Warteschlange z.B. Tastaturpuffer.
  31.     |
  32.     |  Methoden:
  33.     |
  34.     |   Init         : Initialisieren, muß vor der ersten Verwendung geschehen.
  35.     |
  36.     |   Remove_All   : Vernichtet den Puffer, die Elemente die sich zu dieser
  37.     |                  Zeit noch darin befinden, werden nicht angetastet.
  38.     |   Delete_All   : Vernichtet den Puffer, die Elemente die sich zu dieser
  39.     |                  Zeit noch darin befinden, werden durch Dispose
  40.     |                  freigegeben.
  41.     |   Destruct_All : Vernichtet den Puffer, für alle Elemente die sich zu
  42.     |                  dieser Zeit noch darin befinden, wird die Destructor
  43.     |                  Prozedur aufgerufen.
  44.     |   Remove       : Entfernt ein Element aus dem Puffer.
  45.     |
  46.     |   Put          : Ein Element in den Puffer einfügen.
  47.     |   Get          : Ein Element aus dem Puffer nehmen.
  48.     |
  49.     |   IsEmpty      : Liefert TRUE, wenn der Puffer leer ist.
  50.     |
  51.     TYPE
  52.       QueueNodePtr = HIDDEN;
  53.       Queue        = RECORD
  54.                        first : QueueNodePtr;
  55.                      END;
  56.       Destructor   = PROCEDURE(p : type);
  57.  
  58.     PROCEDURE Init(VAR q : Queue);
  59.  
  60.     PROCEDURE Remove_All(VAR q : Queue);
  61.  
  62.     PROCEDURE Remove(VAR q : Queue;data : type);
  63.  
  64.     PROCEDURE Destruct_All(VAR q : Queue;des : Destructor);
  65.  
  66.     PROCEDURE Delete_All(VAR q : Queue);
  67.  
  68.     PROCEDURE Put(VAR q : Queue;data : type);
  69.  
  70.     PROCEDURE Get(VAR q : Queue):type;
  71.  
  72.     PROCEDURE IsEmpty(VAR q : Queue):BOOLEAN;
  73.  
  74.   END Queues;
  75.  
  76.   DEFINITION MODULE Stacks(type : ANYPTR);
  77.     |
  78.     | Stacks
  79.     |
  80.     |  LIFO-Puffer:
  81.     |
  82.     |  Elemente können beliebig in den Puffer eingefügt werden und in der
  83.     |  umgekehrten Reihenfolge wieder ausgelesen werden, typische Anwendung ist
  84.     |  ein Sicherungsspeicher, z.B. Undo - Puffer
  85.     |
  86.     |  Methoden:
  87.     |
  88.     |   Init         : Initialisieren, muß vor der ersten Verwendung geschehen.
  89.     |
  90.     |   Remove_All   : Vernichtet den Puffer, die Elemente die sich zu dieser
  91.     |                  Zeit noch darin befinden, werden nicht angetastet.
  92.     |   Delete_All   : Vernichtet den Puffer, die Elemente die sich zu dieser
  93.     |                  Zeit noch darin befinden, werden durch Dispose
  94.     |                  freigegeben.
  95.     |   Destruct_All : Vernichtet den Puffer, für alle Elemente die sich zu
  96.     |                  dieser Zeit noch darin befinden, wird die Destructor
  97.     |                  Prozedur aufgerufen.
  98.     |   Remove       : Entfernt ein Element aus dem Puffer.
  99.     |
  100.     |   Put          : Ein Element in den Puffer einfügen.
  101.     |   Get          : Ein Element aus dem Puffer nehmen.
  102.     |
  103.     |   IsEmpty      : Liefert TRUE, wenn der Puffer leer ist.
  104.     |
  105.     TYPE
  106.       StackNodePtr  = HIDDEN;
  107.       Stack         = RECORD
  108.                         first : StackNodePtr;
  109.                       END;
  110.       Destructor    = PROCEDURE(p : type);
  111.  
  112.     PROCEDURE Init(VAR q : Stack);
  113.  
  114.  
  115.     PROCEDURE Remove_All(VAR q : Stack);
  116.  
  117.     PROCEDURE Remove(VAR q : Stack;data : type);
  118.  
  119.     PROCEDURE Destruct_All(VAR q : Stack;des : Destructor);
  120.  
  121.     PROCEDURE Delete_All(VAR q : Stack);
  122.  
  123.     PROCEDURE Put(VAR q : Stack;data : type);
  124.  
  125.     PROCEDURE Get(VAR q : Stack):type;
  126.  
  127.     PROCEDURE IsEmpty(VAR q : Stack):BOOLEAN;
  128.  
  129.   END Stacks;
  130.  
  131. END Buffers.
  132.