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