NAME
RPC::Simple::Factory - Perl extension for creating RPC client
SYNOPSIS
use Tk;
use RPC::Simple::Factory;
my $mw = MainWindow-> new ;
my $verbose = 1 ; # up to you
# create factory
my $factory = new RPC::Simple::Factory($mw,\$verbose) ;
DESCRIPTION
This class handles all the tricky stuff involving socket handling. Note that this was written to be used with Tk.
Methods
new($tkTop, [ $verboseRef ], [remote_host], [port] )
create the factory. One factory must be created for each remote host..
tkTop is the ref of Tk's main window.
$verboseRef is the ref of a variable. When set to 1 at any time, the object will become verbose i.e. it will print on STDOUT a lot of messages related to the RPC processing. Then you may use $verboseRef as a text variable on a check button to control whether you want to trace RPC messages or not. If not provided, the object will not be verbose.
By default, remote_host is set to 'localhost', port is set to 7810.
logmsg (...)
print arguments if verbose mode.
newRemoteObject( $owner_ref, [ remote_class_name ] ... )
Will create a remote (the remote_class_name) object tied to the owner.
Additional parameters will be passed as is to the remote 'new' method.
getRemoteHostName
return the remote host name
writeSockBuffer ( agent_index, remote_method, request_id, parameter, [object_name])
Encode the method, object, parameter and send it to the remote object.
agent_index and request_id are used later for the call-back mechanism.
readSock
read pending data on the socket. Do an eval on the read data to call-back the relevent Agents.
Note that there's no security implemented (yet).
Static functions
spawn([port],[verbose])
Will spawn a RPC::Simple server on your machine. Don't call this function if you need to do RPC on a remote machine.
Return the server pid or null (just like fork)
ON EXIT
When the object is destroyed, the 'END' routine will be called. This will kill the server if it was created by spawn.
AUTHOR
Dominique Dumont, Dominique_Dumont@grenoble.hp.com
SEE ALSO
perl(1), RPC::Simple::Agent(3), RPC::Simple::AnyLocal(3).