MODULE ifm$disconnect_reconnect;
*copyc OSD$DEFAULT_PRAGMATS

?? PUSH (LISTEXT := ON) ??
*copyc IIT$INTERACTIVE_SIGNAL_TYPE
*copyc ift$title_for_error_codes
*copyc IIV$CONNECTION_DESC_PTR
*copyc IIV$INTERACTIVE_TERMINATED
*copyc ost$global_task_id
*copyc OST$STATUS
*copyc tmc$signal_identifiers
*copyc ifk$keypoints
?? POP ??

*copyc PMP$SEND_SIGNAL

?? TITLE := 'PROCEDURE ifp$disconnect', EJECT ??

  PROCEDURE [XDCL] ifp$disconnect (VAR status: ost$status);

    VAR
      signal: pmt$signal,
      isig: ^iit$interactive_signal;

    #KEYPOINT (osk$entry, 0, ifk$disconnect);

    signal.identifier := ifc$signal_id;
    isig := #LOC (signal.contents);
    isig^ := iic$disconnect_request;
    pmp$send_signal (iiv$job_monitor_task_id, signal, status);

    #KEYPOINT (osk$exit, 0, ifk$disconnect);

  PROCEND ifp$disconnect;
?? TITLE := 'PROCEDURE ifp$reconnect', EJECT ??

  PROCEDURE [XDCL] ifp$reconnect (global_task_id: ost$global_task_id;
    VAR status: ost$status);

    VAR
      signal: pmt$signal,
      isig: ^iit$reconnect_request;

    signal.identifier := ifc$signal_id;
    isig := #LOC (signal.contents);
    isig^.sig := iic$reconnect_request;
    isig^.gtid := global_task_id;
    pmp$send_signal (iiv$job_monitor_task_id, signal, status);

  PROCEND ifp$reconnect;
MODEND ifm$disconnect_reconnect
