adding some overloading
[gitmo/MooseX-Daemonize.git] / lib / MooseX / Daemonize / Pid.pm
CommitLineData
d8985b7d 1package MooseX::Daemonize::Pid;
2eced271 2use strict; # because Kwalitee is pedantic
3use Moose;
8ac4733f 4use Moose::Util::TypeConstraints;
5
eaf252a6 6use overload '""' => sub { (shift)->pid },
7 '+0' => sub { (shift)->pid },
8 fallback => 1;
9
8ac4733f 10coerce 'MooseX::Daemonize::Pid'
11 => from 'Int'
12 => via { MooseX::Daemonize::Pid->new( pid => $_ ) };
d9e417f4 13
2eced271 14our $VERSION = '0.01';
15
16has 'pid' => (
8ac4733f 17 is => 'rw',
18 isa => 'Int',
19 lazy => 1,
20 clearer => 'clear_pid',
21 predicate => 'has_pid',
22 default => sub { $$ }
2eced271 23);
24
d8985b7d 25sub is_running { kill(0, (shift)->pid) ? 1 : 0 }
2eced271 26
271;
28
29__END__
30
31=pod
32
33=head1 NAME
34
d8985b7d 35MooseX::Daemonize::Pid - PID management for MooseX::Daemonize
2eced271 36
37=head1 DESCRIPTION
38
4327fe98 39This is a very basic Pid management object, it doesn't do all that
40much, and mostly just serves as a base class for L<MooseX::Daemonize::Pid::File>.
41
2eced271 42=head1 ATTRIBUTES
43
4327fe98 44=over 4
2eced271 45
4327fe98 46=item I<pid Int>
2eced271 47
2eced271 48=back
49
50=head1 METHODS
51
4327fe98 52=over 4
53
54=item B<clear_pid>
55
56This will clear the value of the I<pid> attribute. It is useful for making sure
57that the parent process does not have a bad value stored in it.
2eced271 58
4327fe98 59=item B<has_pid>
60
61This is a predicate method to tell you if your I<pid> attribute has
62been initialized yet.
63
64=item B<is_running>
65
66This checks to see if the I<pid> is running.
2eced271 67
68=item meta()
69
70The C<meta()> method from L<Class::MOP::Class>
71
72=back
73
74=head1 DEPENDENCIES
75
76Obviously L<Moose>
77
78=head1 INCOMPATIBILITIES
79
80None reported.
81
82=head1 BUGS AND LIMITATIONS
83
84No bugs have been reported.
85
86Please report any bugs or feature requests to
87C<bug-acme-dahut-call@rt.cpan.org>, or through the web interface at
88L<http://rt.cpan.org>.
89
90=head1 AUTHOR
91
92Stevan Little C<< <stevan@cpan.org> >>
93
94=head1 LICENCE AND COPYRIGHT
95
96Copyright (c) 2007, Chris Prather C<< <perigrin@cpan.org> >>. All rights
97reserved.
98
99This module is free software; you can redistribute it and/or
100modify it under the same terms as Perl itself. See L<perlartistic>.
101
2eced271 102=head1 DISCLAIMER OF WARRANTY
103
104BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
105FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
106OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
107PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
108EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
109WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
110ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
111YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
112NECESSARY SERVICING, REPAIR, OR CORRECTION.
113
114IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
115WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
116REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
117LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
118OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
119THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
120RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
121FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
122SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
123SUCH DAMAGES.
124
125=cut