Scroll to navigation

UR::Service::RPC::Message(3pm) User Contributed Perl Documentation UR::Service::RPC::Message(3pm)

NAME

UR::Service::RPC::Message - Serializable object appropriate for sending RPC messages

SYNOPSIS

  my $msg = UR::Service::RPC::Message->create(
                           target_class => 'URT::RPC::Thingy',
                           method_name  => 'join',
                           params       => ['-', @join_args],
                           'wantarray'  => 0,
                         );
  $msg->send($fh);
  my $resp = UR::Service::RPC::Message->recv($fh, 5);

DESCRIPTION

This class is used as a message-passing interface by the RPC service modules.

PROPERTIES

These properties should be filled in by the initiating caller

The name of the subroutine the initiator whishes to call.
The namespace the initiator wants the subroutine to be called in
List of parameters to pass to the subroutine
What wantarray() context the subroutine should be called in.

These properties are assigned after the RPC call to the subroutine

List of values returned by the subroutine
On the receiving side, the subroutine is called within an eval. If there was an exception, "exception" stores the value of $@, or the empty string. The receiving side should also fill-in "exception" if there was an authentication failure.
"recv" fills this in with the file handle the message was read from.

METHODS

  $bytes = $msg->send($fh);
    

Serializes the Message object with FreezeThaw and writes the data to the filehandle $fh. Returns the number of bytes written. $bytes will be false if there was an error.

  $response = UR::Service::RPC::Message->recv($fh,$timeout);
  $response = $msg->recv();
    

Reads a serialized Message from the filehandle and constructs a Message object that is then returned to the caller. In the first case, it reads from the given filehandle, waiting a maximum of $timeout seconds with select before giving up. In the second case, it reads from whatever filehandle is stored in $msg to read data from.

SEE ALSO

UR::Service::RPC::Server, UR::Service::RPC::Executor

2019-01-02 perl v5.28.1