UR::Service::RPC::Message - Serializable object appropriate for sending RPC messages
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);
This class is used as a message-passing interface by the RPC service modules.
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.
$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.