home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9302 / signals / t / portsigo.int < prev    next >
Encoding:
Text File  |  1993-01-19  |  1.5 KB  |  49 lines

  1. INTERFACE (* PortSigO *)
  2.  
  3. (*
  4.         objektorientierte Variante
  5. *)
  6.  
  7.  
  8. TYPE
  9.       CARDINAL  = WORD;
  10.  
  11. TYPE
  12.       PortFLAG  = ( f_P0, f_P1, f_P2, f_P3, f_P4, f_P5, f_P6, f_P7);
  13.       SigPORT   = SET OF PortFLAG;           (* intern, nur weg. priv. hier *)
  14.       ChangeREC = RECORD                     (* intern, nur weg. priv. hier *)
  15.                     CASE typ : BOOLEAN OF
  16.                       FALSE : (p : CARDINAL);
  17.                       TRUE  : (s : SigPORT);
  18.                   END;
  19.  
  20. TYPE  PortSIGNAL     = OBJECT
  21.  
  22.         CONSTRUCTOR init( portadr : CARDINAL; owner : PortFLAG);
  23.                     (* portadr : z.B. COM-Port + 3 *)
  24.                     (* owner   : eigenes Flag      *)
  25.  
  26.         FUNCTION  SignalReceived : BOOLEAN;
  27.                   (* TRUE : Signal ist gesetzt *)
  28.                   (* Wenn portadr mit 0 initialisiert, dann hier Default: TRUE *)
  29.  
  30.         PROCEDURE ClearOwnSignal;
  31.                   (* Erhalt des eigenen Signals wird hierdurch bestätigt *)
  32.  
  33.         PROCEDURE WaitForSignalAndClear;
  34.                   (* Wartet, bis Signal erhalten; löscht gleichzeitig. *)
  35.                   (* Einsatz macht ClearOwnSignal und SignalReceived   *)
  36.                   (* überflüssig.                                      *)
  37.  
  38.         PROCEDURE SendSignalTo( process : PortFLAG);
  39.                   (* Sendet ein Signal an den Prozeß mit dem Flag process *)
  40.  
  41.       PRIVATE
  42.         adr  : CARDINAL;
  43.         flag : PortFLAG;
  44.         w    : ChangeREC;
  45.       END;
  46.  
  47. (*
  48. END PortSigO.
  49. *)