?? NEWTITLE := 'NOS/VE Media library interfaces' ??
*copyc osd$default_pragmats
MODULE rmm$robotic_interfaces_2dd;

{ Purpose: The packaging of this module allows waiting in the end user ring
{          for the eventual appearance of a robotic request.

?? NEWTITLE := '    Global Declarations Referenced by this Module', EJECT ??

*copyc ost$name
*copyc ost$status
*copyc rme$robotic_interface_errors
*copyc rmt$rbt_request
?? OLDTITLE ??
?? NEWTITLE := '    Global Procedures Referenced by this Module', EJECT ??
*copyc pmp$long_term_wait
*copyc rmp$log_debug_message
*copyc rmp$server_get_request_23d
?? OLDTITLE ??
?? NEWTITLE := '    RMP$SERVER_GET_REQUEST', EJECT ??

  PROCEDURE [XDCL, #GATE] rmp$server_get_request
    (    server_name: ost$name;
         wait: boolean;
     VAR client_request: rmt$rbt_request;
     VAR status: ost$status);

    status.normal := TRUE;

  /request_loop/
    WHILE TRUE DO
      rmp$server_get_request_23d (server_name, wait, client_request,
            status);
      IF status.normal THEN
        EXIT /request_loop/;
      ELSEIF (status.condition = rme$no_requests_available) AND wait THEN
        rmp$log_debug_message (' Entering wait in rmp$server_get_request');
        pmp$long_term_wait (0ffffffffffff(16), 0ffffffffffff(16));
        rmp$log_debug_message (' Exiting wait in rmp$server_get_request');
      ELSE
        EXIT /request_loop/;
      IFEND;
    WHILEND /request_loop/;

  PROCEND rmp$server_get_request;
?? OLDTITLE ??
MODEND rmm$robotic_interfaces_2dd;

