NAME
Devel::Events::Filter::Size - Add Devel::Size info to event data.
SYNOPSIS
my $f = Devel::Events::Filter::Size->new(
handler => $h,
fields => [qw/foo bar gorch/], # calculate the size of these fields
);
# OR
my $f = Devel::Events::Filter::Size->new(
handler => $h,
fields => "object", # just one field
);
DESCRIPTION
This class uses Devel::Size and optionally Devel::Size::Report to provide size information for data found inside events.
Typical usage would be to apply it to the object
field in conjunction with Devel::Events::Objects.
ATTRIBUTES
- fields
-
The fields whose size to check.
Can be a single string, or an array reference.
When undefined all fields will be computed.
- one_field
-
This parameter controls the placement of the results (top level, or under the
sizes
field).It defaults to true when
fields
is a scalar, and false in any other situation. - no_total
-
When true, "total_size" in Devel::Size will not be used.
Defaults to false.
- no_report
-
When true, Devel::Size::Report will not be used.
Defaults to true.
METHODS
- filter_event
-
When
is_one_field
returns a true value, this method will add asize
, and optionally atotal_size
andsize_report
field to the event. Otherwise it will add several of these to thesizes
field, keyed by therefaddr
of the value.Only reference types will have their sizes computed.
- is_one_field
-
Internal method. Used by
filter_event
- get_field
-
Returns the fields whose sizes need computing. This is either all fields if
fields
is undef, or the specified fields. - get_fields
-
Returns only one field. Used when
is_one_field
is true. - calculate_sizes
-
Return an entry with the
size
,total_size
andsize_report
results. - calculate_size
- calculate_total_size
-
Optionally uses "total_size" in Devel::Size, depending on the value of
no_total
. - calculate_size_report
-
Optionally loads Devel::Size::Report and uses uses "report_size" in Devel::Size::Report, depending on the value of
no_report
.
SEE ALSO
Devel::Events, Devel::Size, Devel::Events::Filter
AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
COPYRIGHT & LICENSE
Copyright (c) 2007 Yuval Kogman. All rights reserved
This program is free software; you can redistribute it and/or modify it
under the terms of the MIT license or the same terms as Perl itself.