NAME

Email::Fingerprint::Cache::NDBM - NDBM backend for Email::Fingerprint::Cache

VERSION

Version 0.01

SYNOPSIS

use Email::Fingerprint::Cache;

my $foo = Email::Fingerprint::Cache->new({
    backend => 'NDBM',
});
...

You never want to use this class directly; you always want to access it through Email::Fingerpint::Cache.

ATTRIBUTES

FUNCTIONS

new

$cache = new Email::Fingerprint::Cache::NDBM({
  file => $filename,  # Mandatory
});

Method created automatically by Class::Std.

BUILD

Internal helper method; never called directly by users.

open

$cache->open or die;

Open the associated file, and tie it to our hash. This method does not lock the file, nor unlock it on failure. See lock and unlock.

close

Unties the hash, which causes the underlying DB file to be written and closed.

is_open

Returns true if the cache is open; false otherwise.

is_locked

Returns true if the cache is locked; false otherwise.

lock

$cache->lock or die;                  # returns immediately
$cache->lock( block => 1 ) or die;    # Waits for a lock

Lock the DB file. Returns false on failure, true on success.

unlock

$cache->unlock or cluck "Unlock failed";

Unlocks the DB file. Returns false on failure, true on success.

PRIVATE METHODS

get_hash

Returns a reference to the hash which is tied to the backend storage.

AUTHOR

Len Budney, <lbudney at pobox.com>

BUGS

Please report any bugs or feature requests to bug-email-fingerprint at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Email-Fingerprint. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Email::Fingerprint::Cache::NDBM

You can also look for information at:

ACKNOWLEDGEMENTS

Email::Fingerprint::Cache is based on caching code in the eliminate_dups script by Peter Samuel and available at http://www.qmail.org/.

COPYRIGHT & LICENSE

Copyright 2006 Len Budney, all rights reserved.

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