MODULE clm$job_history_operator_cmds;
?? RIGHT := 110 ??
*copyc ofe$error_codes
?? PUSH (LISTEXT := ON) ??
*copyc avp$system_operator
*copyc clp$scan_parameter_list
*copyc jme$queued_file_conditions
*copyc jml$user_id
*copyc jmp$set_job_history_state
*copyc osp$set_status_abnormal
*copyc osp$status_condition_code
*copyc sfp$activate_system_statistic
*copyc sfp$deactivate_system_statistic
?? POP ??
?? NEWTITLE := 'CLM$JOB_HISTORY_OPERATOR_CMDS' ??

?? TITLE := '  CLP$ACTIVATE_JOB_HISTORY', EJECT ??

  PROCEDURE [XDCL, #GATE] clp$activate_job_history (program_parameters: clt$parameter_list;
        VAR status: ost$status);

{ PDT activate_history_pdt (
{   status)

?? PUSH (LISTEXT := ON) ??

    VAR
      activate_history_pdt: [STATIC, READ, cls$pdt] clt$parameter_descriptor_table :=
        [^activate_history_pdt_names, ^activate_history_pdt_params];

    VAR
      activate_history_pdt_names: [STATIC, READ, cls$pdt_names_and_defaults] array [1 .. 1] of
        clt$parameter_name_descriptor := [['STATUS', 1]];

    VAR
      activate_history_pdt_params: [STATIC, READ, cls$pdt_parameters] array [1 .. 1] of
        clt$parameter_descriptor := [

{ STATUS }
      [[clc$optional], 1, 1, 1, 1, clc$value_range_not_allowed, [NIL, clc$variable_reference,
        clc$array_not_allowed, clc$status_value]]];

?? POP ??

    VAR
      statistic_code: sft$statistic_code;

    status.normal := TRUE;

    IF NOT avp$system_operator () THEN
      osp$set_status_abnormal ('OF', ofe$sou_not_active, 'system_operator', status);
      RETURN;
    IFEND;

    clp$scan_parameter_list (program_parameters, activate_history_pdt, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    jmp$set_job_history_state (TRUE);

    FOR statistic_code := jml$first_history_statistic TO jml$last_history_statistic DO

      sfp$activate_system_statistic (statistic_code, $sft$binary_logset [pmc$history_log], status);
      IF NOT status.normal THEN
        RETURN;
      IFEND;

    FOREND;

  PROCEND clp$activate_job_history;

?? TITLE := '  CLP$DEACTIVATE_JOB_HISTORY' ??
?? EJECT ??

  PROCEDURE [XDCL, #GATE] clp$deactivate_job_history (program_parameters: clt$parameter_list;
        VAR status: ost$status);

{ PDT deactivate_history_pdt (
{   status)

?? PUSH (LISTEXT := ON) ??

    VAR
      deactivate_history_pdt: [STATIC, READ, cls$pdt] clt$parameter_descriptor_table :=
        [^deactivate_history_pdt_names, ^deactivate_history_pdt_params];

    VAR
      deactivate_history_pdt_names: [STATIC, READ, cls$pdt_names_and_defaults] array [1 .. 1] of
        clt$parameter_name_descriptor := [['STATUS', 1]];

    VAR
      deactivate_history_pdt_params: [STATIC, READ, cls$pdt_parameters] array [1 .. 1] of
        clt$parameter_descriptor := [

{ STATUS }
      [[clc$optional], 1, 1, 1, 1, clc$value_range_not_allowed, [NIL, clc$variable_reference,
        clc$array_not_allowed, clc$status_value]]];

?? POP ??

    VAR
      statistic_code: sft$statistic_code;

    status.normal := TRUE;

    IF NOT avp$system_operator () THEN
      osp$set_status_abnormal ('OF', ofe$sou_not_active, 'system_operator', status);
      RETURN;
    IFEND;

    clp$scan_parameter_list (program_parameters, deactivate_history_pdt, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    FOR statistic_code := jml$first_history_statistic TO jml$last_history_statistic DO

      sfp$deactivate_system_statistic (statistic_code, $sft$binary_logset [pmc$history_log], status);
      IF NOT status.normal THEN
        RETURN;
      IFEND;

    FOREND;

    jmp$set_job_history_state (FALSE);

  PROCEND clp$deactivate_job_history;

MODEND clm$job_history_operator_cmds;
