?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Job Scheduling : Update object statistics' ??
MODULE jmm$update_object_statistics;

{ PURPOSE:
{   This module contains the routine to update the statistics for an
{   object on the profile.
{
{ NOTES:
{   See JMM$ADMINISTER_DEFINITIONS, JMM$ADMINISTER_ATTRIBUTES.

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc jmc$profile_constants
*copyc jmt$service_class_statistics
*copyc jmt$object_attribute
*copyc jmt$profile_object
?? RIGHT := 79, POP ??
*copyc jmp$get_job_class_statistics
*copyc jmp$get_service_class_stats
?? TITLE := 'Global Declarations Declared by This Module', EJECT ??
?? NEWTITLE := '[XDCL] jmp$update_object_statistics' ??

{ PURPOSE:
{   Fetch the statistics for the specified class and add them to the
{   specified attribute list.

  PROCEDURE [XDCL] jmp$update_object_statistics
    (    the_object: jmt$profile_object;
     VAR attributes: jmt$object_attribute;
     VAR status: ost$status);

    VAR
      job_class_statistics: jmt$job_class_statistics,
      service_class_statistics: jmt$service_class_statistics;

    CASE the_object.kind OF
    = jmc$profile_job_class =
      jmp$get_job_class_statistics (the_object.index, job_class_statistics,
            status);
      attributes.attribute_list^ [jmc$jc_queued_jobs].kind := jmc$number;
      attributes.attribute_list^ [jmc$jc_queued_jobs].number :=
            job_class_statistics.queued_jobs;
      attributes.attribute_list^ [jmc$jc_initiated_jobs].kind := jmc$number;
      attributes.attribute_list^ [jmc$jc_initiated_jobs].number :=
            job_class_statistics.initiated_jobs;
    = jmc$profile_service_class =
      jmp$get_service_class_stats (the_object.index, service_class_statistics,
            status);
      attributes.attribute_list^ [jmc$sc_queued_jobs].kind := jmc$number;
      attributes.attribute_list^ [jmc$sc_queued_jobs].number :=
            service_class_statistics.queued_jobs;
      attributes.attribute_list^ [jmc$sc_active_jobs].kind := jmc$number;
      attributes.attribute_list^ [jmc$sc_active_jobs].number :=
            service_class_statistics.active_jobs;
      attributes.attribute_list^ [jmc$sc_swapped_jobs].kind := jmc$number;
      attributes.attribute_list^ [jmc$sc_swapped_jobs].number :=
            service_class_statistics.swapped_jobs;
    ELSE
    CASEND;
  PROCEND jmp$update_object_statistics;
MODEND jmm$update_object_statistics;
