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=485821d47c46551b29f40b4024d279923c325627;hp=6cfb9bbef1f18c24d3f1760b1bb061dd637d8a83;hb=624b459bafc411773708e674cf54e1971eb4d231;hpb=e144d525c19bc4488952e4cea0ea0fe47a8db133 diff --git a/lib/Object/Remote.pm b/lib/Object/Remote.pm index 6cfb9bb..485821d 100644 --- a/lib/Object/Remote.pm +++ b/lib/Object/Remote.pm @@ -6,8 +6,14 @@ use Module::Runtime qw(use_module); sub new::on { my ($class, $on, @args) = @_; - my $conn = use_module('Object::Remote::Connection')->new_from_spec($on); - return $conn->new_remote(class => $class, args => \@args); + my $conn = __PACKAGE__->connect($on); + return $conn->remote_object(class => $class, args => \@args); +} + +sub can::on { + my ($class, $on, $name) = @_; + my $conn = __PACKAGE__->connect($on); + return $conn->remote_sub(join('::', $class, $name)); } sub new { @@ -15,6 +21,11 @@ sub new { Object::Remote::Handle->new(@_)->proxy; } +sub connect { + my ($class, $to) = @_; + use_module('Object::Remote::Connection')->new_from_spec($to); +} + sub current_loop { our $Current_Loop ||= Object::Remote::MiniLoop->new }