Provided by: libur-perl_0.470+ds-1_all
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 method_name => Text The name of the subroutine the initiator whishes to call. target_class => Text The namespace the initiator wants the subroutine to be called in params => ARRAY List of parameters to pass to the subroutine wantarray => Boolean What wantarray() context the subroutine should be called in. These properties are assigned after the RPC call to the subroutine return_values => ARRAY List of values returned by the subroutine exception 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. fh "recv" fills this in with the file handle the message was read from.
send $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. recv $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.