API-Eulerian

 view release on metacpan or  search on metacpan

lib/API/Eulerian/EDW/Chrono.pm  view on Meta::CPAN

#/usr/bin/env perl
###############################################################################
#
# @file Chrono.pm
#
# @brief API::Eulerian::EDW::Chrono module used to compute elapsed time between two
#        calls.
#
# @author Thorillon Xavier:x.thorillon@eulerian.com
#
# @date 25/11/2021
#
# @version 1.0
#
###############################################################################
#
# Setup perl package name
#
package API::Eulerian::EDW::Chrono;
#
# Enforce compilor rules
#
use strict; use warnings;
#
# Import gettimeofday, tv_interval
#
use Time::HiRes qw( gettimeofday tv_interval );
#
# @brief Allocate and initialize a new API::Eulerian::EDW Chrono instance.
#
# @return API::Eulerian::EDW::Chrono instance.
#
sub new
{
  return bless( {
      _CHRONO => [ gettimeofday ],
    }, shift
  );
}
#
# @brief Get Elapsed time between Chrono creation and call to elapsed.
#
# @param $self - API::Eulerian::EDW::Chrono instance.
#
# @return Elapsed time ( secondes.microsecondes )
#
sub elapsed
{
  return tv_interval( shift->{ _CHRONO }, [ gettimeofday ] );
}
#
# Endup module properly
#
1;

__END__

=pod

=head1  NAME

API::Eulerian::EDW::Chrono - API::Eulerian::EDW Chrono module.

=head1 DESCRIPTION

This module is used to count elapsed time.

=head1 METHODS

=head2 new()

I<Allocate and initialize a new API::Eulerian::EDW::Chrono instance>

=head3 output

=over 4

=item * API::Eulerian::EDW::Chrono instance.

=back

=head2 elapsed()

I<Get elapsed time since Chrono creation>

=head3 input

=over 4

=item * API::Eulerian::EDW::Chrono instance.

=back

=head3 output

=over 4

=item * Elapsed time secondes.microsecondes.

=back

=head1 SEE ALSO

L<Time::HiRes>

=head1 AUTHOR



( run in 0.442 second using v1.01-cache-2.11-cpan-39bf76dae61 )