=head1 NAME

Unix::Statgrab::sg_cpu_stats - container for libstatgrab CPU statistics

=head1 DESCRIPTION

C<Unix::Statgrab::sg_cpu_stats> is a Perl package name providing
accessors to bundled libstatgrab L<sg_cpu_stats|http://www.i-scream.org/libstatgrab/docs/sg_get_cpu_stats.3.html> data collection.

=head1 METHODS

=head2 nentries

Returns the number of entries in the container.

=head2 systime

Returns the seconds since Epoch (0:00:00 on January, 1st 1970) of the time measure the CPU statistics.

=head2 as_list

B<Deprecated> alias of L</fetchall_hash>

=head2 fetchall_hash

Returns all records from L<sg_cpu_stats|http://www.i-scream.org/libstatgrab/docs/sg_get_cpu_stats.3.html>
container as list of hash containing each datum name as key and the datum as value.

=head2 fetchall_array

Returns all records from L<sg_cpu_stats|http://www.i-scream.org/libstatgrab/docs/sg_get_cpu_stats.3.html>
container as list of arrays containing the values in following order:

  (user kernel idle iowait swap nice total
   context_switches voluntary_context_switches involuntary_context_switches
   syscalls interrupts soft_interrupts
   systime)

in that order without leading headline.

=head2 fetchall_table

Returns all records from L<sg_cpu_stats|http://www.i-scream.org/libstatgrab/docs/sg_get_cpu_stats.3.html>
container as list of arrays containing the values in following order:

  (user kernel idle iowait swap nice total
   context_switches voluntary_context_switches involuntary_context_switches
   syscalls interrupts soft_interrupts
   systime)

in that order including leading headline.

=head2 fetchrow_arrayref($row = 0)

Returns one row as array containing values as above.

=head2 fetchall_arrayref

Returns all records from L<sg_cpu_stats|http://www.i-scream.org/libstatgrab/docs/sg_get_cpu_stats.3.html>
container as array of arrays without header.

=head2 fetchrow_hashref($row = 0)

Returns one row as hash containing C<< { user => $self.user($row), kernel => ... } >>.

=head2 fetchall_hashref

Returns all records from L<sg_cpu_stats|http://www.i-scream.org/libstatgrab/docs/sg_get_cpu_stats.3.html>
container as array of hashes.

=head2 colnames

Returns list of column names: C<< (user kernel idle iowait swap nice total context_switches voluntary_context_switches involuntary_context_switches syscalls interrupts soft_interrupts systime) >>

=head2 user

Clock ticks in user mode

=head2 kernel

Clock ticks in kernel mode

=head2 idle

Clock ticks while idle

=head2 iowait

Clock ticks while waiting for outstanding I/O

=head2 swap

Clock ticks while waiting for swap

=head2 nice

Clock ticks in user mode with nice priority

=head2 total

Overall clock ticks

=head2 context_switches

Overall Context switches

=head2 voluntary_context_switches

Voluntary context switches (See L<sched_yield(2)|http://pubs.opengroup.org/onlinepubs/9699919799/functions/sched_yield.html>)

=head2 involuntary_context_switches

Involuntary context switches 

=head2 syscalls

Number of syscalls

=head2 interrupts

Amount of interrupts happened

=head2 soft_interrupts

Amount of software triggered interrupts

=head2 get_cpu_stats_diff

Provides the difference between the last measurement and the recent one.

  $recent->get_cpu_stats_diff($last);

=head2 get_cpu_percents

Provides a percentage representation of the single cpu ticks measured.

=head1 AUTHOR

Jens Rehsack, E<lt>rehsack AT cpan.orgE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2012-2015 by Jens Rehsack

This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 2.1 of the License, or (at your option) any
later version.

=cut
