?? RIGHT := 110 ??
?? NEWTITLE := 'INSTALL_SOFTWARE Utility: RAP$CONVERT_JOB_RECORD_TO_STRS Interface.' ??
MODULE ram$convert_job_record_to_strs;

{ PURPOSE:
{   This module contains the interface to convert the job status record's
{   fields into strings for displaying.
{
{ DESIGN:
{   The compiled module resides in RAF$LIBRARY.
{
{ NOTES:
{

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc rat$installation_control_record
*copyc rat$job_status_record_strs
?? POP ??
*copyc clp$convert_integer_to_string
*copyc clp$trimmed_string_size
*copyc pmp$format_compact_date
*copyc pmp$format_compact_time
*copyc rav$step_status
*copyc rav$step_title
?? OLDTITLE ??
?? NEWTITLE := '[XDCL] rap$convert_job_record_to_strs', EJECT ??

{ PURPOSE:
{   This interface converts the job status record's fields into strings for
{   displaying.  The converted string values are return in a record.
{
{ DESIGN:
{   A record with corresponding field names (but of type ost$string) is
{   used to hold the converted values from the job status record.
{
{ NOTES:
{

  PROCEDURE [XDCL] rap$convert_job_record_to_strs
    (    job_status_record: rat$job_status_record;
     VAR job_status_strings: rat$job_status_record_strs;
     VAR status: ost$status);


    VAR
      date: ost$date,
      time: ost$time;


    status.normal := TRUE;

    job_status_strings.job_identifier.size := clp$trimmed_string_size (job_status_record.job_identifier);
    job_status_strings.job_identifier.value := job_status_record.job_identifier;

    job_status_strings.log_file_name.size := clp$trimmed_string_size (job_status_record.log_file_name);
    job_status_strings.log_file_name.value := job_status_record.log_file_name;

    pmp$format_compact_date (job_status_record.date_time, osc$iso_date, date, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    job_status_strings.date.size := clp$trimmed_string_size (date.iso);
    job_status_strings.date.value := date.iso;

    pmp$format_compact_time (job_status_record.date_time, osc$millisecond_time, time, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    job_status_strings.time.size := clp$trimmed_string_size (time.millisecond);
    job_status_strings.time.value := time.millisecond;

    clp$convert_integer_to_string (job_status_record.number_of_steps, 10, FALSE,
          job_status_strings.number_of_steps, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    clp$convert_integer_to_string (job_status_record.step_number, 10, FALSE,
          job_status_strings.step_number, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    job_status_strings.step.size := clp$trimmed_string_size (rav$step_title [job_status_record.step]);
    job_status_strings.step.value := rav$step_title [job_status_record.step];

    job_status_strings.step_status.size := clp$trimmed_string_size
          (rav$step_status [job_status_record.step_status]);
    job_status_strings.step_status.value := rav$step_status [job_status_record.step_status];

    clp$convert_integer_to_string (job_status_record.initial_subproduct_count, 10, FALSE,
          job_status_strings.initial_subproduct_count, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    clp$convert_integer_to_string (job_status_record.started_subproduct_count, 10, FALSE,
          job_status_strings.started_subproduct_count, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    clp$convert_integer_to_string (job_status_record.completed_subproduct_count, 10, FALSE,
          job_status_strings.completed_subproduct_count, status);

  PROCEND rap$convert_job_record_to_strs;
MODEND ram$convert_job_record_to_strs;
