stdchans.mod 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. IMPLEMENTATION MODULE StdChans;
  2. (* The standard channels are IOChan's; the "current" channels are
  3. settable, defaulting to the standards. NullChan is a closed
  4. channel (all operations are safe no-ops). *)
  5. IMPORT IOChan;
  6. VAR
  7. inChan, outChan, errChan : IOChan.ChanId;
  8. PROCEDURE StdInChan () : IOChan.ChanId;
  9. BEGIN RETURN IOChan.StdInChan() END StdInChan;
  10. PROCEDURE StdOutChan () : IOChan.ChanId;
  11. BEGIN RETURN IOChan.StdOutChan() END StdOutChan;
  12. PROCEDURE StdErrChan () : IOChan.ChanId;
  13. BEGIN RETURN IOChan.StdErrChan() END StdErrChan;
  14. PROCEDURE NullChan () : IOChan.ChanId;
  15. BEGIN RETURN IOChan.MakeChan(NIL) END NullChan;
  16. PROCEDURE InChan () : IOChan.ChanId;
  17. BEGIN RETURN inChan END InChan;
  18. PROCEDURE OutChan () : IOChan.ChanId;
  19. BEGIN RETURN outChan END OutChan;
  20. PROCEDURE ErrChan () : IOChan.ChanId;
  21. BEGIN RETURN errChan END ErrChan;
  22. PROCEDURE SetInChan (cid : IOChan.ChanId);
  23. BEGIN inChan := cid END SetInChan;
  24. PROCEDURE SetOutChan (cid : IOChan.ChanId);
  25. BEGIN outChan := cid END SetOutChan;
  26. PROCEDURE SetErrChan (cid : IOChan.ChanId);
  27. BEGIN errChan := cid END SetErrChan;
  28. BEGIN
  29. inChan := IOChan.StdInChan();
  30. outChan := IOChan.StdOutChan();
  31. errChan := IOChan.StdErrChan()
  32. END StdChans.