NAME
Crypt::Random::Source::Base::Handle - IO::Handle based random data sources
VERSION
version 0.14
SYNOPSIS
use Moo;
extends qw(Crypt::Random::Source::Base::Handle);
sub open_handle {
# invoked as needed
}
# this class can also be used directly
Crypt::Random::Source::Base::Handle->new( handle => $file_handle );
# it supports some standard methods:
$p->blocking(0);
$p->read( my $buf, $n ); # no error handling here
DESCRIPTION
This is a concrete base class for all IO::Handle based random data sources.
It implements error handling
ATTRIBUTES
handle
An IO::Handle or file handle to read from.
blocking
This is actually handled by handle
, and is documented in IO::Handle.
allow_under_read
Whether or not under reading is considered an error.
Defaults to false.
reread_attempts
The number of attempts to make at rereading if the handle did not provide enough bytes on the first attempt.
Defaults to 1.
Only used if allow_under_read
is enabled.
METHODS
get
See "get" in Crypt::Random::Source::Base.
When blocking
or allow_under_read
are set to a true value this method may return fewer bytes than requested.
read
This delegates directly to handle
.
It DOES NOT provide the same validation as get
would have, so no checking for underreads is done.
close
Close the handle and clear it.
_read
$self->handle->read
but with additional error checking and different calling conventions.
_read_too_short
Called by _read
when not enough data was read from the handle. Normally it will either die with an error or attempt to reread. When allow_under_read
is true it will just return the partial buffer.
open_handle
Abstract method, should return an IO::Handle to use.
SUPPORT
Bugs may be submitted through the RT bug tracker (or bug-Crypt-Random-Source@rt.cpan.org).
AUTHOR
יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
COPYRIGHT AND LICENCE
This software is copyright (c) 2008 by Yuval Kogman.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.