?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Accounting and Validation: Accounting Interfaces' ??
MODULE avm$accounting_interfaces;
{
{ PURPOSE:
{   This module contains the interfaces for privileged accounting routines.

?? NEWTITLE := 'Global declarations referenced by this module.', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc cle$ecc_miscellaneous
{copyc osc$timesharing
{copyc osc$timesharing_terminal_file
?? POP ??
*copyc avp$begin_account
*copyc clp$get_processing_phase
*copyc jmp$emit_communication_stat
*copyc osp$set_status_abnormal
*copyc pmf$job_mode
?? OLDTITLE ??
?? NEWTITLE := '[XDCL, #GATE] avp$begin_job_account', EJECT ??

  PROCEDURE [XDCL, #GATE] avp$begin_job_account
    (    family_name: ost$family_name;
         user_name: ost$user_name;
         account_name: avt$account_name;
         project_name: avt$project_name;
         user_supplied_job_name: ost$name;
         job_class: jmt$job_class;
     VAR status: ost$status);

    VAR
      processing_phase: clt$processing_phase;

    status.normal := TRUE;
    clp$get_processing_phase (processing_phase, status);
    IF (processing_phase <> clc$job_begin_phase) THEN
      osp$set_status_abnormal ('AV', cle$unexpected_call_to, 'avp$begin_job_account', status);
      RETURN;
    IFEND;

    avp$begin_account (family_name, user_name, account_name, project_name, user_supplied_job_name, job_class,
          status);

  PROCEND avp$begin_job_account;
?? OLDTITLE ??
?? NEWTITLE := '[XDCL, #GATE] avp$emit_interactive_interval', EJECT ??

{ PURPOSE
{   This procedure is used to emit the interactive interval statistic,
{   when needed by the accounting analysis system.

  PROCEDURE [XDCL, #GATE] avp$emit_interactive_interval;

    VAR
      statistic_data: jmt$comm_acct_statistic_data;

    IF pmf$job_mode () = jmc$interactive_connected THEN
      statistic_data.statistic_id := jmc$ca_interactive_interval;
      jmp$emit_communication_stat (statistic_data);
    IFEND;

  PROCEND avp$emit_interactive_interval;
?? OLDTITLE ??
MODEND avm$accounting_interfaces;
