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