docs update and add PctCPU and PctMem
This commit is contained in:
parent
734e0ed46b
commit
ce7eabcefc
|
@ -1,4 +1,4 @@
|
|||
package Proc::ProcessTable::Match::EGID;
|
||||
[6~package Proc::ProcessTable::Match::EGID;
|
||||
|
||||
use 5.006;
|
||||
use strict;
|
||||
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::EGID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::EGID->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::EGID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::EGID->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::EUID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::EUID->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::EUID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::EUID->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::GID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::GID->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::GID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::GID->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::PID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::PID->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::PID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::PID->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -0,0 +1,256 @@
|
|||
package Proc::ProcessTable::Match::PctCPU;
|
||||
|
||||
use 5.006;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Proc::ProcessTable::Match::PctCPU - Check if the PctCPU of a process matches.
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
Version 0.0.0
|
||||
|
||||
=cut
|
||||
|
||||
our $VERSION = '0.0.0';
|
||||
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use Proc::ProcessTable::Match::PctCPU;
|
||||
|
||||
my %args=(
|
||||
pctcpus=>[
|
||||
0,
|
||||
'>1000',
|
||||
],
|
||||
);
|
||||
|
||||
my $checker=Proc::ProcessTable::Match::PctCPU->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
}
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
This intiates the object.
|
||||
|
||||
It takes a hash reference with one key. One key is required and
|
||||
that is 'pctcpus', which is a array of PctCPUs values to match.
|
||||
|
||||
The PctCPU values can be prefixed with the equalities below for doing
|
||||
additional comparisons.
|
||||
|
||||
<
|
||||
<=
|
||||
>
|
||||
>=
|
||||
|
||||
Atleast one PctCPU must be specified.
|
||||
|
||||
If the new method fails, it dies.
|
||||
|
||||
my %args=(
|
||||
pctcpus=>[
|
||||
0,
|
||||
'>1000',
|
||||
],
|
||||
);
|
||||
|
||||
my $checker=Proc::ProcessTable::Match::PctCPU->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
sub new{
|
||||
my %args;
|
||||
if(defined($_[1])){
|
||||
%args= %{$_[1]};
|
||||
};
|
||||
|
||||
# run some basic checks to make sure we have the minimum stuff required to work
|
||||
if ( ! defined( $args{pctcpus} ) ){
|
||||
die ('No pctcpus key specified in the argument hash');
|
||||
}
|
||||
if ( ref( \$args{pctcpus} ) eq 'ARRAY' ){
|
||||
die ('The pctcpus key is not a array');
|
||||
}
|
||||
if ( ! defined $args{pctcpus}[0] ){
|
||||
die ('Nothing defined in the pctcpus array');
|
||||
}
|
||||
|
||||
my $self = {
|
||||
pctcpus=>$args{pctcpus},
|
||||
};
|
||||
bless $self;
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
=head2 match
|
||||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "The process matches.\n";
|
||||
}
|
||||
|
||||
=cut
|
||||
|
||||
sub match{
|
||||
my $self=$_[0];
|
||||
my $object=$_[1];
|
||||
|
||||
if ( !defined( $object ) ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( ref( $object ) ne 'Proc::ProcessTable::Process' ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
my $proc_pctcpu;
|
||||
eval{
|
||||
$proc_pctcpu=$object->pctcpu;
|
||||
};
|
||||
|
||||
# don't bother proceeding, the object won't match ever
|
||||
# as it does not have a PctCPU
|
||||
if ( ! defined( $proc_pctcpu ) ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
# use while as foreach will reference the value
|
||||
my $pctcpu_int=0;
|
||||
while (defined( $self->{pctcpus}[$pctcpu_int] )){
|
||||
my $pctcpu=$self->{pctcpus}[$pctcpu_int];
|
||||
if (
|
||||
( $pctcpu =~ /^[0-9]+$/ ) &&
|
||||
( $pctcpu eq $proc_pctcpu )
|
||||
){
|
||||
return 1;
|
||||
}elsif( $pctcpu =~ /^\<\=[0-9]+$/ ){
|
||||
$pctcpu=~s/^\<\=//;
|
||||
if ( $proc_pctcpu <= $pctcpu ){
|
||||
return 1;
|
||||
}
|
||||
}elsif( $pctcpu =~ /^\<[0-9]+$/ ){
|
||||
$pctcpu=~s/^\<//;
|
||||
if ( $proc_pctcpu < $pctcpu ){
|
||||
return 1;
|
||||
}
|
||||
}elsif( $pctcpu =~ /^\>\=[0-9]+$/ ){
|
||||
$pctcpu=~s/^\>\=//;
|
||||
if ( $proc_pctcpu >= $pctcpu ){
|
||||
return 1;
|
||||
}
|
||||
}elsif( $pctcpu =~ /^\>[0-9]+$/ ){
|
||||
$pctcpu=~s/^\>//;
|
||||
if ( $proc_pctcpu > $pctcpu ){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
$pctcpu_int++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 SUPPORT
|
||||
|
||||
You can find documentation for this module with the perldoc command.
|
||||
|
||||
perldoc Proc::ProcessTable::Match
|
||||
|
||||
|
||||
You can also look for information at:
|
||||
|
||||
=over 4
|
||||
|
||||
=item * RT: CPAN's request tracker (report bugs here)
|
||||
|
||||
L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
||||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head1 ACKNOWLEDGEMENTS
|
||||
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2019 Zane C. Bowers-Hadley.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the the Artistic License (2.0). You may obtain a
|
||||
copy of the full license at:
|
||||
|
||||
L<http://www.perlfoundation.org/artistic_license_2_0>
|
||||
|
||||
Any use, modification, and distribution of the Standard or Modified
|
||||
Versions is governed by this Artistic License. By using, modifying or
|
||||
distributing the Package, you accept this license. Do not use, modify,
|
||||
or distribute the Package, if you do not accept this license.
|
||||
|
||||
If your Modified Version has been derived from a Modified Version made
|
||||
by someone other than you, you are nevertheless required to ensure that
|
||||
your Modified Version complies with the requirements of this license.
|
||||
|
||||
This license does not grant you the right to use any trademark, service
|
||||
mark, tradename, or logo of the Copyright Holder.
|
||||
|
||||
This license includes the non-exclusive, worldwide, free-of-charge
|
||||
patent license to make, have made, use, offer to sell, sell, import and
|
||||
otherwise transfer the Package with respect to any patent claims
|
||||
licensable by the Copyright Holder that are necessarily infringed by the
|
||||
Package. If you institute patent litigation (including a cross-claim or
|
||||
counterclaim) against any party alleging that the Package constitutes
|
||||
direct or contributory patent infringement, then this Artistic License
|
||||
to you shall terminate on the date that such litigation is filed.
|
||||
|
||||
Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER
|
||||
AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY
|
||||
YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR
|
||||
CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR
|
||||
CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
=cut
|
||||
|
||||
1; # End of Proc::ProcessTable::Match
|
|
@ -0,0 +1,267 @@
|
|||
package Proc::ProcessTable::Match::PctMem;
|
||||
|
||||
use 5.006;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Proc::ProcessTable::Match::PctMem - Check if the PctMem of a process matches.
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
Version 0.0.0
|
||||
|
||||
=cut
|
||||
|
||||
our $VERSION = '0.0.0';
|
||||
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use Proc::ProcessTable::Match::PctMem;
|
||||
|
||||
my %args=(
|
||||
PctMems=>[
|
||||
0,
|
||||
'>1000',
|
||||
],
|
||||
);
|
||||
|
||||
my $checker=Proc::ProcessTable::Match::PctMem->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
}
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
This intiates the object.
|
||||
|
||||
It takes a hash reference with one key. One key is required and
|
||||
that is 'PctMems', which is a array of PctMems values to match.
|
||||
|
||||
The PctMem values can be prefixed with the equalities below for doing
|
||||
additional comparisons.
|
||||
|
||||
<
|
||||
<=
|
||||
>
|
||||
>=
|
||||
|
||||
Atleast one PctMem must be specified.
|
||||
|
||||
If the new method fails, it dies.
|
||||
|
||||
my %args=(
|
||||
pctmems=>[
|
||||
0,
|
||||
'>1000',
|
||||
],
|
||||
);
|
||||
|
||||
my $checker=Proc::ProcessTable::Match::PctMem->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
sub new{
|
||||
my %args;
|
||||
if(defined($_[1])){
|
||||
%args= %{$_[1]};
|
||||
};
|
||||
|
||||
# run some basic checks to make sure we have the minimum stuff required to work
|
||||
if ( ! defined( $args{pctmems} ) ){
|
||||
die ('No pctmems key specified in the argument hash');
|
||||
}
|
||||
if ( ref( \$args{pctmems} ) eq 'ARRAY' ){
|
||||
die ('The pctmems key is not a array');
|
||||
}
|
||||
if ( ! defined $args{pctmems}[0] ){
|
||||
die ('Nothing defined in the pctmems array');
|
||||
}
|
||||
|
||||
my $self = {
|
||||
pctmems=>$args{pctmems},
|
||||
physmem=>undef,
|
||||
};
|
||||
bless $self;
|
||||
|
||||
if ( $^O =~ /bsd/ ){
|
||||
$self->{physmem}=`/sbin/sysctl -a hw.physmem`;
|
||||
chomp( $self->{physmem} );
|
||||
$self->{physmem}=~s/^.*\: //;
|
||||
}
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
=head2 match
|
||||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "The process matches.\n";
|
||||
}
|
||||
|
||||
=cut
|
||||
|
||||
sub match{
|
||||
my $self=$_[0];
|
||||
my $object=$_[1];
|
||||
|
||||
if ( !defined( $object ) ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( ref( $object ) ne 'Proc::ProcessTable::Process' ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
my $proc_pctmem;
|
||||
if ($^O =~ /bsd/){
|
||||
$proc_pctmem=$self->{physmem};
|
||||
}else{
|
||||
eval{
|
||||
$proc_pctmem=$object->pctmem;
|
||||
};
|
||||
}
|
||||
|
||||
# don't bother proceeding, the object won't match ever
|
||||
# as it does not have a PctMem
|
||||
if ( ! defined( $proc_pctmem ) ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
# use while as foreach will reference the value
|
||||
my $pctmem_int=0;
|
||||
while (defined( $self->{pctmems}[$pctmem_int] )){
|
||||
my $pctmem=$self->{pctmems}[$pctmem_int];
|
||||
if (
|
||||
( $pctmem =~ /^[0-9]+$/ ) &&
|
||||
( $pctmem eq $proc_pctmem )
|
||||
){
|
||||
return 1;
|
||||
}elsif( $pctmem =~ /^\<\=[0-9]+$/ ){
|
||||
$pctmem=~s/^\<\=//;
|
||||
if ( $proc_pctmem <= $pctmem ){
|
||||
return 1;
|
||||
}
|
||||
}elsif( $pctmem =~ /^\<[0-9]+$/ ){
|
||||
$pctmem=~s/^\<//;
|
||||
if ( $proc_pctmem < $pctmem ){
|
||||
return 1;
|
||||
}
|
||||
}elsif( $pctmem =~ /^\>\=[0-9]+$/ ){
|
||||
$pctmem=~s/^\>\=//;
|
||||
if ( $proc_pctmem >= $pctmem ){
|
||||
return 1;
|
||||
}
|
||||
}elsif( $pctmem =~ /^\>[0-9]+$/ ){
|
||||
$pctmem=~s/^\>//;
|
||||
if ( $proc_pctmem > $pctmem ){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
$pctmem_int++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
||||
|
||||
=head1 SUPPORT
|
||||
|
||||
You can find documentation for this module with the perldoc command.
|
||||
|
||||
perldoc Proc::ProcessTable::Match
|
||||
|
||||
|
||||
You can also look for information at:
|
||||
|
||||
=over 4
|
||||
|
||||
=item * RT: CPAN's request tracker (report bugs here)
|
||||
|
||||
L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
||||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head1 ACKNOWLEDGEMENTS
|
||||
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2019 Zane C. Bowers-Hadley.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the the Artistic License (2.0). You may obtain a
|
||||
copy of the full license at:
|
||||
|
||||
L<http://www.perlfoundation.org/artistic_license_2_0>
|
||||
|
||||
Any use, modification, and distribution of the Standard or Modified
|
||||
Versions is governed by this Artistic License. By using, modifying or
|
||||
distributing the Package, you accept this license. Do not use, modify,
|
||||
or distribute the Package, if you do not accept this license.
|
||||
|
||||
If your Modified Version has been derived from a Modified Version made
|
||||
by someone other than you, you are nevertheless required to ensure that
|
||||
your Modified Version complies with the requirements of this license.
|
||||
|
||||
This license does not grant you the right to use any trademark, service
|
||||
mark, tradename, or logo of the Copyright Holder.
|
||||
|
||||
This license includes the non-exclusive, worldwide, free-of-charge
|
||||
patent license to make, have made, use, offer to sell, sell, import and
|
||||
otherwise transfer the Package with respect to any patent claims
|
||||
licensable by the Copyright Holder that are necessarily infringed by the
|
||||
Package. If you institute patent litigation (including a cross-claim or
|
||||
counterclaim) against any party alleging that the Package constitutes
|
||||
direct or contributory patent infringement, then this Artistic License
|
||||
to you shall terminate on the date that such litigation is filed.
|
||||
|
||||
Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER
|
||||
AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY
|
||||
YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR
|
||||
CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR
|
||||
CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
=cut
|
||||
|
||||
1; # End of Proc::ProcessTable::Match
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::RSS->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::RSS->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::RSS->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::RSS->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::Size->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::Size->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::Size->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::Size->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::Start->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::Start->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::Start->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::Start->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
|
@ -28,7 +28,7 @@ our $VERSION = '0.0.0';
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::UID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::UID->new( \%args );
|
||||
|
||||
if ( $checker->match( $proc ) ){
|
||||
print "It matches.\n";
|
||||
|
@ -62,7 +62,7 @@ If the new method fails, it dies.
|
|||
],
|
||||
);
|
||||
|
||||
my $checker=Net::Connection::Match::UID->new( \%args );
|
||||
my $checker=Proc::ProcessTable::Match::UID->new( \%args );
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -95,7 +95,7 @@ sub new{
|
|||
|
||||
Checks if a single Proc::ProcessTable::Process object matches the stack.
|
||||
|
||||
One argument is taken and that is a Net::Connection object.
|
||||
One argument is taken and that is a Proc::ProcessTable::Process object.
|
||||
|
||||
The returned value is a boolean.
|
||||
|
||||
|
@ -170,8 +170,8 @@ Zane C. Bowers-Hadley, C<< <vvelox at vvelox.net> >>
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature requests to C<bug-net-connection-match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Match>. I will be notified, and then you'll
|
||||
Please report any bugs or feature requests to C<bug-Proc-ProcessTable-Match at rt.cpan.org>, or through
|
||||
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Proc-ProcessTable-Match>. I will be notified, and then you'll
|
||||
automatically be notified of progress on your bug as I make changes.
|
||||
|
||||
|
||||
|
@ -194,15 +194,15 @@ L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Proc-ProcessTable-Match>
|
|||
|
||||
=item * AnnoCPAN: Annotated CPAN documentation
|
||||
|
||||
L<http://annocpan.org/dist/Net-Connection-Match>
|
||||
L<http://annocpan.org/dist/Proc-ProcessTable-Match>
|
||||
|
||||
=item * CPAN Ratings
|
||||
|
||||
L<https://cpanratings.perl.org/d/Net-Connection-Match>
|
||||
L<https://cpanratings.perl.org/d/Proc-ProcessTable-Match>
|
||||
|
||||
=item * Search CPAN
|
||||
|
||||
L<https://metacpan.org/release/Net-Connection-Match>
|
||||
L<https://metacpan.org/release/Proc-ProcessTable-Match>
|
||||
|
||||
=back
|
||||
|
||||
|
@ -253,4 +253,4 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
=cut
|
||||
|
||||
1; # End of Net::Connection::Match
|
||||
1; # End of Proc::ProcessTable::Match
|
||||
|
|
Loading…
Reference in New Issue