-- Lupine: implementation of example interface

-- TargetImpl.mesa

-- Andrew Birrell  July 8, 1982 9:22 am

DIRECTORY
Rope	USING[ ROPE ],
Target	USING[ Reason ],
TargetRpcControl USING[ ExportInterface ];

TargetImpl: PROGRAM
IMPORTS TargetRpcControl
EXPORTS Target =

BEGIN

Basic: PUBLIC PROC =
  { NULL };

Simple: PUBLIC PROC[first: INT, second: REF INT] RETURNS[a: Rope.ROPE, b: ATOM] =
  { RETURN["Hello", $anAtom] };

Exception: PUBLIC ERROR[why: Target.Reason] = CODE;

Consultation: PUBLIC SIGNAL = CODE;

TargetRpcControl.ExportInterface[user: "someone.pa", password: ];

END.