Devel::Events::Filter::Stamp - Add time/context stamping to events


Devel-Events documentation Contained in the Devel-Events distribution.

Index


Code Index:

NAME

Top

Devel::Events::Filter::Stamp - Add time/context stamping to events

SYNOPSIS

Top

	use Devel::Events::Filter::Stamp;

	my $filter = Devel::Events::Filter::Stamp->new(
		handler => $handler,
	);

	Generator::Blah->new( handler => $filter );

DESCRIPTION

Top

This event filter will add timing and context information to the event.

The parameters are prepended so that upon hash assignment the event generator will get precedence.

METHODS

Top

filter_event @event

Prepends the output of stamp_data to @event

stamp_data

Returns the new fields, as detailed in STAMP DATA

STAMP DATA

Top

time

A fractional timestamp, from Time::HiRes.

Suitable for passing to DateTime unaltered. Other modules may require application of int.

pid

The value of $$

thread_id

Only included if threads are in use.

The current thread ID.


Devel-Events documentation Contained in the Devel-Events distribution.

#!/usr/bin/perl

package Devel::Events::Filter::Stamp;
use Moose;

with qw/Devel::Events::Filter/;

use Time::HiRes qw/time/;

sub filter_event {
	my ( $self, $type, @data ) = @_;

	return (
		$type,
		$self->stamp_data,
		@data,
	);
}

my $i;

sub stamp_data {
	return (
		id   => ++$i,
		time => time(), # DateTime eats HiRes time =D
		pid  => $$,
		( defined &Thread::tid # Only if threads are loaded
			? ( thread_id => Thread->self->tid )
			: () ),
	)
}

__PACKAGE__;

__END__