+#This is an experimental method for working with
+#Log::Contextual crossing Object::Remote connections
+#transparently
+
package Object::Remote::Role::LogForwarder;
use Moo::Role;
-use Object::Remote::Logging;
use Scalar::Util qw(weaken);
use Carp qw(cluck);
sub BUILD { }
after BUILD => sub {
- my ($self) = @_;
-# my $parent = $self->parent_router;
-# return unless defined $parent ;
-# $parent->add_child_router($self);
+ my ($self) = @_;
+# my $parent = $self->parent_router;
+# return unless defined $parent ;
+# $parent->add_child_router($self);
};
sub describe {
- my ($self, $depth) = @_;
- $depth = -1 unless defined $depth;
- $depth++;
- my $buf = "\t" x $depth . $self->description . "\n";
- foreach my $child (@{$self->child_routers}) {
- next unless defined $child;
- $buf .= $child->describe($depth);
- }
+ my ($self, $depth) = @_;
+ $depth = -1 unless defined $depth;
+ $depth++;
+ my $buf = "\t" x $depth . $self->description . "\n";
+ foreach my $child (@{$self->child_routers}) {
+ next unless defined $child;
+ $buf .= $child->describe($depth);
+ }
- return $buf;
+ return $buf;
}
sub add_child_router {
- my ($self, $router) = @_;
- push(@{ $self->child_routers }, $router);
+ my ($self, $router) = @_;
+ push(@{ $self->child_routers }, $router);
+ #TODO re-weaken when object::remote proxied
+ #weak references is figured out
# weaken(${ $self->child_routers }[-1]);
- return;
+ return;
}
#sub remove_child_router {
#}
after handle_log_message => sub {
- my ($self, @args) = @_;
- my $parent = $self->parent_router;
+ my ($self, @args) = @_;
+ my $parent = $self->parent_router;
- return unless defined $parent;
- $parent->handle_log_message(@args);
+ return unless defined $parent;
+ $parent->handle_log_message(@args);
};
1;
+