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