% The specification of the channel
% Version 1, 03.06.1998
module channel

   graph class: DirectedGraph

   exports
      transformation unit create;
      transformation unit data_available;
      transformation unit send;
      transformation unit receive

   realized by

      % Create a channel
      transformation unit create
         initial:
         body:
            apply once create_channel
         terminal:
      end;

      % Checks, if some data is available on the channel
      transformation unit data_available
         initial:
         body:
            apply once avail
         terminal:
      end;

      % Sends data onto the channel
      transformation unit send
         initial:
         body:
            apply once snd1 < snd2
         terminal:
      end;

      % Receives data from the channel
      transformation unit receive
         initial:
         body:
            apply once rcv1 < rcv2
         terminal:
      end
end.