

DEFINITION MODULE GENEP;

FROM EVENT  IMPORT EventType;
FROM PROCS  IMPORT ProcessType;
FROM RAND   IMPORT Gen;
FROM STAT   IMPORT Block;
FROM SYSTEM IMPORT ADDRESS;
TYPE
   ArrivalProcess;


   DelayProc = PROCEDURE () : LONGREAL;


PROCEDURE Create
   ( VAR A : ArrivalProcess;
     Name  : ARRAY OF CHAR
   );


PROCEDURE StartArrivalsE
   ( A    : ArrivalProcess;
     E    : EventType;
     Par  : ADDRESS;
     D    : DelayProc;
     Nmax : LONGCARD
   );


PROCEDURE StartPoissonArrivalsE
   ( A    : ArrivalProcess;
     E    : EventType;
     Par  : ADDRESS;
     Mean : LONGREAL;
     g    : Gen;
     Nmax : LONGCARD
   );


PROCEDURE StartArrivalsP
   ( A    : ArrivalProcess;
     T    : ProcessType;
     Par  : ADDRESS;
     D    : DelayProc;
     Nmax : LONGCARD
   );


PROCEDURE StartPoissonArrivalsP
   ( A    : ArrivalProcess;
     T    : ProcessType;
     Par  : ADDRESS;
     Mean : LONGREAL;
     g    : Gen;
     Nmax : LONGCARD
   );


PROCEDURE StopArrivals
   ( A : ArrivalProcess
   );


PROCEDURE CollectStat
   ( A : ArrivalProcess
   );


PROCEDURE StatDelay
   ( A : ArrivalProcess
   ) : Block;


PROCEDURE NbArriv
   ( A : ArrivalProcess
   ) : LONGCARD;


PROCEDURE Report
   ( A : ArrivalProcess
   );


PROCEDURE Delete
   ( VAR A : ArrivalProcess
   );


END GENEP.
