X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FObject-Remote.git;a=blobdiff_plain;f=lib%2FObject%2FRemote.pm;h=b8f76451aba06e8978437aaf0ef938eedc6c6a7b;hp=e68544594c26aabfc482521cf5222ff7910b54ab;hb=173c4fd41ad64aaa8e5f3af1596612f6a6b5ee81;hpb=993ff858dd2fafe40f9bfcc3cc31b479b70888d6 diff --git a/lib/Object/Remote.pm b/lib/Object/Remote.pm index e685445..b8f7645 100644 --- a/lib/Object/Remote.pm +++ b/lib/Object/Remote.pm @@ -2,19 +2,22 @@ package Object::Remote; use Object::Remote::MiniLoop; use Object::Remote::Handle; +use Object::Remote::Logging qw( :log ); use Module::Runtime qw(use_module); -our $VERSION = '0.001001'; # 0.1.1 +our $VERSION = '0.003000'; # 0.3.0 sub new::on { my ($class, $on, @args) = @_; my $conn = __PACKAGE__->connect($on); + log_trace { sprintf("constructing instance of $class on connection for child pid of %i", $conn->child_pid) }; return $conn->remote_object(class => $class, args => \@args); } sub can::on { my ($class, $on, $name) = @_; my $conn = __PACKAGE__->connect($on); + log_trace { "Invoking remote \$class->can('$name')" }; return $conn->remote_sub(join('::', $class, $name)); } @@ -25,7 +28,7 @@ sub new { sub connect { my ($class, $to) = @_; - use_module('Object::Remote::Connection')->new_from_spec($to); + use_module('Object::Remote::Connection')->maybe::start::new_from_spec($to); } sub current_loop { @@ -123,6 +126,41 @@ to block until an asynchronous call completes or fails. my $hostname = Sys::Hostname->can::on('myserver', 'hostname'); +=head1 ENVIRONMENT + +=over 4 + +=item OBJECT_REMOTE_PERL_BIN + +When starting a new Perl interpreter the contents of this environment +variable will be used as the path to the executable. If the variable +is not set the path is 'perl' + +=item OBJECT_REMOTE_LOG_LEVEL + +Setting this environment variable will enable logging and send all log messages +at the specfied level or higher to STDERR. Valid level names are: trace debug +verbose info warn error fatal + +=item OBJECT_REMOTE_LOG_FORMAT + +The format of the logging output is configurable. By setting this environment variable +the format can be controlled via printf style position variables. See +L. + +=item OBJECT_REMOTE_LOG_FORWARDING + +Forward log events from remote connections to the local Perl interpreter. Set to 0 to disable +this feature which is enabled by default. See L. + +=item OBJECT_REMOTE_LOG_SELECTIONS + +Space seperated list of class names to display logs for if logging output is enabled. Default +value is "Object::Remote::Logging" which selects all logs generated by Object::Remote. +See L. + +=back + =head1 SUPPORT IRC: #web-simple on irc.perl.org @@ -135,6 +173,8 @@ mst - Matt S. Trout (cpan:MSTROUT) phaylon - Robert Sedlacek (cpan:PHAYLON) +triddle - Tyler Riddle (cpan:TRIDDLE) + =head1 SPONSORS Parts of this code were paid for by