Commit afd7c10c1b56d8c88a38864670c311cda3733623

Fix tab damage.  No significant changes.
  
55use lib qw(../lib);
66
77{
8 package App;
9 use Moose;
10 extends 'Reflex::Object';
11 use Reflex::Timer;
8 package App;
9 use Moose;
10 extends 'Reflex::Object';
11 use Reflex::Timer;
1212
13 has ticker => (
14 isa => 'Reflex::Timer',
15 is => 'rw',
16 setup => { interval => 1, auto_repeat => 1 },
17 traits => [ 'Reflex::Trait::Observer' ],
18 );
13 has ticker => (
14 isa => 'Reflex::Timer',
15 is => 'rw',
16 setup => { interval => 1, auto_repeat => 1 },
17 traits => [ 'Reflex::Trait::Observer' ],
18 );
1919
20 sub on_ticker_tick {
21 print "tick at ", scalar(localtime), "...\n";
22 }
20 sub on_ticker_tick {
21 print "tick at ", scalar(localtime), "...\n";
22 }
2323}
2424
2525exit App->new()->run_all();
  
55use lib qw(../lib);
66
77{
8 package App;
9 use Moose;
10 extends 'Reflex::Timer';
8 package App;
9 use Moose;
10 extends 'Reflex::Timer';
1111
12 sub on_my_tick {
13 print "tick at ", scalar(localtime), "...\n";
14 }
12 sub on_my_tick {
13 print "tick at ", scalar(localtime), "...\n";
14 }
1515}
1616
1717exit App->new(interval => 1, auto_repeat => 1)->run_all();
  
77use lib qw(../lib);
88
99{
10 package App;
11 use Reflex::Timer;
12 use base qw(Reflex::Timer);
10 package App;
11 use Reflex::Timer;
12 use base qw(Reflex::Timer);
1313
14 sub on_my_tick {
15 print "tick at ", scalar(localtime), "...\n";
16 }
14 sub on_my_tick {
15 print "tick at ", scalar(localtime), "...\n";
16 }
1717}
1818
1919exit App->new(interval => 1, auto_repeat => 1)->run_all();
  
77use lib qw(../lib);
88
99{
10 package App;
11 use Reflex::Object;
12 use Reflex::Timer;
13 use base qw(Reflex::Object);
10 package App;
11 use Reflex::Object;
12 use Reflex::Timer;
13 use base qw(Reflex::Object);
1414
15 sub BUILD {
16 my $self = shift;
15 sub BUILD {
16 my $self = shift;
1717
18 $self->{ticker} = Reflex::Timer->new(
19 interval => 1,
20 auto_repeat => 1,
21 );
18 $self->{ticker} = Reflex::Timer->new(
19 interval => 1,
20 auto_repeat => 1,
21 );
2222
23 $self->observe_role(
24 observed => $self->{ticker},
25 role => "ticker",
26 );
27 }
23 $self->observe_role(
24 observed => $self->{ticker},
25 role => "ticker",
26 );
27 }
2828
29 sub on_ticker_tick {
30 print "tick at ", scalar(localtime), "...\n";
31 }
29 sub on_ticker_tick {
30 print "tick at ", scalar(localtime), "...\n";
31 }
3232}
3333
3434exit App->new()->run_all();
  
2020# Create a thing that will invoke callbacks.
2121
2222{
23 package PromiseThing;
24 use Moose;
25 extends 'Reflex::Object';
26 use Reflex::Timer;
23 package PromiseThing;
24 use Moose;
25 extends 'Reflex::Object';
26 use Reflex::Timer;
2727 use Reflex::Callbacks qw(gather_cb);
2828
29 has ticker => (
30 isa => 'Reflex::Timer',
31 is => 'rw',
32 setup => { interval => 1, auto_repeat => 1 },
33 traits => [ 'Reflex::Trait::Observer' ],
34 );
29 has ticker => (
30 isa => 'Reflex::Timer',
31 is => 'rw',
32 setup => { interval => 1, auto_repeat => 1 },
33 traits => [ 'Reflex::Trait::Observer' ],
34 );
3535
3636 has cb => ( is => 'rw', isa => 'Reflex::Callbacks' );
3737
4040 $self->cb(gather_cb($arg));
4141 }
4242
43 sub on_ticker_tick {
43 sub on_ticker_tick {
4444 my $self = shift;
4545 $self->cb()->send( event => {} );
46 }
46 }
4747}
4848
4949use Reflex::Callbacks qw(cb_promise);
  
5454# Not a complete example.
5555# Please see eg-13-irc-bot.pl in the examples for one.
5656
57 has poco_watcher => (
58 isa => 'Reflex::POE::Session',
59 is => 'rw',
60 traits => ['Reflex::Trait::Observer'],
61 role => 'poco',
62 );
57 has poco_watcher => (
58 isa => 'Reflex::POE::Session',
59 is => 'rw',
60 traits => ['Reflex::Trait::Observer'],
61 role => 'poco',
62 );
6363
64 sub BUILD {
65 my $self = shift;
64 sub BUILD {
65 my $self = shift;
6666
67 $self->component(
68 POE::Component::IRC->spawn(
69 nick => "reflex_$$",
70 ircname => "Reflex Test Bot",
71 server => "10.0.0.25",
72 ) || die "Drat: $!"
73 );
67 $self->component(
68 POE::Component::IRC->spawn(
69 nick => "reflex_$$",
70 ircname => "Reflex Test Bot",
71 server => "10.0.0.25",
72 ) || die "Drat: $!"
73 );
7474
75 $self->poco_watcher(
76 Reflex::POE::Session->new(
77 sid => $self->component()->session_id(),
78 )
79 );
75 $self->poco_watcher(
76 Reflex::POE::Session->new(
77 sid => $self->component()->session_id(),
78 )
79 );
8080
81 $self->run_within_session(
82 sub {
83 $self->component()->yield(register => "all");
84 $self->component()->yield(connect => {});
85 }
86 )
87 }
81 $self->run_within_session(
82 sub {
83 $self->component()->yield(register => "all");
84 $self->component()->yield(connect => {});
85 }
86 )
87 }
8888
8989TODO - Either complete the example, or find a shorter one.
9090
  
123123# Not a complete example. Please see eg-07-wheel-run.pl or even
124124# better eg-08-observer-trait.pl for working examples.
125125
126 has child => (
127 traits => ['Reflex::Trait::Observer'],
128 isa => 'Reflex::POE::Wheel::Run|Undef',
129 is => 'rw',
130 );
126 has child => (
127 traits => ['Reflex::Trait::Observer'],
128 isa => 'Reflex::POE::Wheel::Run|Undef',
129 is => 'rw',
130 );
131131
132 sub BUILD {
133 my $self = shift;
134 $self->child(
135 Reflex::POE::Wheel::Run->new(
136 Program => "$^X -wle 'print qq[pid(\$\$) moo(\$_)] for 1..10; exit'",
137 )
138 );
139 }
132 sub BUILD {
133 my $self = shift;
134 $self->child(
135 Reflex::POE::Wheel::Run->new(
136 Program => "$^X -wle 'print qq[pid(\$\$) moo(\$_)] for 1..10; exit'",
137 )
138 );
139 }
140140
141 sub on_child_stdout {
142 my ($self, $args) = @_;
143 print "stdout: $args->{output}\n";
144 }
141 sub on_child_stdout {
142 my ($self, $args) = @_;
143 print "stdout: $args->{output}\n";
144 }
145145
146 sub on_child_close {
147 my ($self, $args) = @_;
148 print "child closed all output\n";
149 }
146 sub on_child_close {
147 my ($self, $args) = @_;
148 print "child closed all output\n";
149 }
150150
151 sub on_child_signal {
152 my ($self, $args) = @_;
153 print "child $args->{pid} exited: $args->{exit}\n";
154 $self->child(undef);
155 }
151 sub on_child_signal {
152 my ($self, $args) = @_;
153 print "child $args->{pid} exited: $args->{exit}\n";
154 $self->child(undef);
155 }
156156
157157TODO - Needs a better example.
158158