NAME

ResourcePool::Resource - A ResourcePool wrapper class for a resource

SYNOPSIS

use ResourcePool::Resource;

my $resource = ResourcePool::Resource->new();

DESCRIPTION

This class is a base class for the resources which will be used with ResourcePool. ResourcePool uses this class internally to have a unique interface to interact with the resource.

Each ResourcePool::Resource class gets constructed by the corresponding ResourcePool::Factory class. In fact the Factory classes are just used to store the parameters which are required to construct a resource.

Every class which is derived from ResourcePool::Resource must override the close, fail_close and get_plain_resource methods and should override at least one of precheck or postcheck.

$resource->close

Closes a connection gracefully.

Returns: undef

$resource->fail_close

Closes a failed connection and ignores error (since this connection is known to be broken)

Returns: undef

$resource->get_plain_resource

Returns the naked resource which can be used by the client. This is the DBI or Net::LDAP handle for example.

Returns: a reference to a object

$resource->precheck

Checks a connection. This method is called by the get() method of the ResourcePool before it returns a connection. The default implementation always returns true.

Returns: true if the connection is valid

$resource->postcheck

Checks a connection. This method is called by the free() method of the ResourcePool to check if a connection is still valid. The default implementation always returns true.

Returns: true if the connection is valid

SEE ALSO

ResourcePool, ResourcePool::Resource::DBI, ResourcePool::Resource::Net::LDAP

AUTHOR

    Copyright (C) 2001-2009 by Markus Winand <mws@fatalmind.com>

    This program is free software; you can redistribute it and/or
    modify it under the same terms as Perl itself.