
?? PUSH (LISTEXT := ON) ??
*copyc MLD$MEMORY_LINK_DECLARATIONS
*copyc MLT$PARTNER_JOB_UNIQUE_ID
?? POP ??

  CONST
    icc$pj_exec_application_name = 9d0285(16), { 'ICPJE'/10289797(10) }
    icc$pj_exec_time_delay = 100,
    icc$pj_exec_job_limit_delay = 2000,
    icc$max_message_length = mlc$max_message_length DIV 8,
    icc$max_partner_image_length = icc$max_message_length - 2,
    icc$max_open_files_per_job = 1,
    icc$validation_image_length = 38;

  TYPE

    ict$partner_messages = (icc$initiate_partner_request,
      icc$initiate_partner_response, icc$status_partner_request,
      icc$status_partner_response, icc$terminate_partner_request,
      icc$terminate_partner_response, icc$delete_partner_request,
      icc$delete_partner_response),

    ict$general_message = array [1 .. icc$max_message_length] of integer,

{ Initiate partner job request message.

    ict$initiate_partner_request = packed record
      commands_length: integer,
      data_length: integer,
      partner_image: array [1 .. icc$max_partner_image_length-
        icc$validation_image_length] of ict$partner_image_word,
      validation_image: array[1..icc$validation_image_length] of
        ict$partner_image_word,
    recend,

{ Initiate partner job response message.

    ict$initiate_partner_response = packed record
      initiate_status: integer,
      partner_identification: ict$partner_identification,
    recend,

{ Status partner job request message.

    ict$status_partner_request = packed record
      partner_identification: ict$partner_identification,
    recend,

{ Status partner job response message.

    ict$status_partner_response = packed record
      partner_status: integer,
    recend,

{ Terminate partner job request message.

    ict$terminate_partner_request = packed record
      partner_identification: ict$partner_identification,
    recend,

{ Delete partner job response message.

    ict$terminate_partner_response = packed record
      terminate_status: integer,
    recend,

{ Delete partner job request message.

    ict$delete_partner_request = packed record
      partner_identification: ict$partner_identification,
    recend,

{ Delete partner job response message.

    ict$delete_partner_response = packed record
      delete_status: integer,
    recend,

    ict$partner_commands_length = 0 .. icc$max_partner_image_length,

    ict$partner_data_length = 0 .. icc$max_partner_image_length,

    ict$partner_image_word = integer,

    ict$initiate_partner_status = (icc$partner_started_ok,
      icc$partner_job_limit_exceeded, icc$partner_start_failed),

    ict$partner_identification = record
      application_name: mlt$application_name,
      job_name: ict$partner_job_name,
      job_unique_id: mlt$partner_job_unique_id,
    recend,

    ict$partner_job_name = integer,

    ict$route_partner_status = (icc$partner_route_ok,
      icc$partner_route_failed),

    ict$status_partner_status = (icc$partner_not_found,
      icc$partner_in_input_queue, icc$partner_not_signed_on,
      icc$partner_signed_on),

    ict$terminate_partner_status = (icc$partner_terminated_ok,
      icc$no_term_in_input_queue, icc$no_term_not_signed_on,
      icc$no_term_not_found),

    ict$partner_queue_status = (icc$partner_queue_input,
      icc$partner_queue_executing, icc$partner_not_in_queues),

    ict$delete_partner_status = (icc$partner_deleted_ok,
      icc$no_delete_not_found,icc$delete_ok_sign_off_failed);
