Mail::SpamAssassin::BaUsertContributed PMail::SpamAssassin::BayesStore::BDB(3)
NAME
Mail::SpamAssassin::BayesStore::BDB - BerkeleyDB Bayesian Storage
Module Implementation
SYNOPSIS
DESCRIPTION
This module implementes a BDB based bayesian storage module.
METHODS
new
public class (Mail::SpamAssassin::BayesStore::SQL) new
(Mail::Spamassassin::Plugin::Bayes $bayes)
Description: This methods creates a new instance of the
Mail::SpamAssassin::BayesStore::BDB object. It expects to be passed an
instance of the Mail::SpamAssassin:Bayes object which is passed into
the Mail::SpamAssassin::BayesStore parent object.
tie_db_readonly
public instance (Boolean) tie_db_readonly ();
Description: This method ensures that the database connection is
properly setup and working.
tie_db_writable
public instance (Boolean) tie_db_writable ()
Description: This method ensures that the database connection is
properly setup and working. If necessary it will initialize the
database so that they can begin using the database immediately.
_open_db
private instance (Boolean) _open_db (Boolean $writable)
Description: This method ensures that the database connection is
properly setup and working. It will initialize a users bayes variables
so that they can begin using the database immediately.
untie_db
public instance () untie_db ()
Description: Closes any open db handles. You can safely call this at
any time.
calculate_expire_delta
public instance (%) calculate_expire_delta (
Integer $newest_atime, Integer $start, Integer $max_expire_mult)
Description: This method performs a calculation on the data to
determine the optimum atime for token expiration.
token_expiration
public instance (Integer, Integer,
Integer, Integer) token_expiration (\% $opts,
Integer $newdelta,
@ @vars)
Description: This method performs the database specific expiration of
tokens based on the passed in $newdelta and @vars.
sync_due
public instance (Boolean) sync_due ()
Description: This method determines if a database sync is currently
required.
Unused for BDB implementation.
seen_get
public instance (String) seen_get (string $msgid)
Description: This method retrieves the stored value, if any, for
$msgid. The return value is the stored string ('s' for spam and 'h'
for ham) or undef if $msgid is not found.
seen_put
public (Boolean) seen_put (string $msgid, char $flag)
Description: This method records $msgid as the type given by $flag.
$flag is one of two values 's' for spam and 'h' for ham.
seen_delete
public instance (Boolean) seen_delete (string $msgid)
Description: This method removes $msgid from the database.
get_storage_variables
public instance (@) get_storage_variables ()
Description: This method retrieves the various administrative variables
used by the Bayes process and database.
The values returned in the array are in the following order:
0: scan count base
1: number of spam
2: number of ham
3: number of tokens in db
4: last expire atime
5: oldest token in db atime
6: db version value
7: last journal sync
8: last atime delta
9: last expire reduction count
10: newest token in db atime
dump_tokens
public instance () dump_tokens (String $template, String $regex, Array
@vars)
Description: This method loops over all tokens, computing the
probability for the token and then printing it out according to the
passed in token.
set_last_expire
public instance (Boolean) set_last_expire (Integer $time)
Description: This method sets the last expire time.
get_running_expire_tok
public instance (String $time) get_running_expire_tok ()
Description: This method determines if an expire is currently running
and returns the last time set.
There can be multiple times, so we just pull the greatest (most recent)
value.
set_running_expire_tok
public instance (String $time) set_running_expire_tok ()
Description: This method sets the time that an expire starts running.
remove_running_expire_tok
public instance (Boolean) remove_running_expire_tok ()
Description: This method removes the row in the database that indicates
that and expire is currently running.
tok_get
public instance (Integer, Integer, Integer) tok_get (String $token)
Description: This method retrieves a specificed token ($token) from the
database and returns its spam_count, ham_count and last access time.
tok_get_all
public instance (\@) tok_get (@ $tokens)
Description: This method retrieves the specified tokens ($tokens) from
storage and returns an array ref of arrays spam count, ham acount and
last access time.
tok_count_change
public instance (Boolean) tok_count_change (
Integer $dspam, Integer $dham, String $token, String $newatime)
Description: This method takes a $spam_count and $ham_count and adds it
to $tok along with updating $toks atime with $atime.
multi_tok_count_change
public instance (Boolean) multi_tok_count_change (
Integer $dspam, Integer $dham, \% $tokens, String $newatime)
Description: This method takes a $dspam and $dham and adds it to all of
the tokens in the $tokens hash ref along with updating each tokens
atime with $atime.
nspam_nham_get
public instance ($spam_count, $ham_count) nspam_nham_get ()
Description: This method retrieves the total number of spam and the
total number of ham learned.
nspam_nham_change
public instance (Boolean) nspam_nham_change (Integer $num_spam,
Integer $num_ham)
Description: This method updates the number of spam and the number of
ham in the database.
tok_touch
public instance (Boolean) tok_touch (String $token,
String $atime)
Description: This method updates the given tokens ($token) atime.
The assumption is that the token already exists in the database.
We will never update to an older atime
tok_touch_all
public instance (Boolean) tok_touch (\@ $tokens
String $atime)
Description: This method does a mass update of the given list of tokens
$tokens, if the existing token atime is < $atime.
The assumption is that the tokens already exist in the database.
We should never be touching more than N_SIGNIFICANT_TOKENS, so we can
make some assumptions about how to handle the data (ie no need to batch
like we do in tok_get_all)
cleanup
public instance (Boolean) cleanup ()
Description: This method perfoms any cleanup necessary before moving
onto the next operation.
get_magic_re
public instance (String) get_magic_re ()
Description: This method returns a regexp which indicates a magic
token.
Unused in BDB implementation.
sync
public instance (Boolean) sync (\% $opts)
Description: This method performs a sync of the database
perform_upgrade
public instance (Boolean) perform_upgrade (\% $opts);
Description: Performs an upgrade of the database from one version to
another, not currently used in this implementation.
clear_database
public instance (Boolean) clear_database ()
Description: This method deletes all records for a particular user.
Callers should be aware that any errors returned by this method could
causes the database to be inconsistent for the given user.
backup_database
public instance (Boolean) backup_database ()
Description: This method will dump the users database in a machine
readable format.
restore_database
public instance (Boolean) restore_database (String $filename, Boolean
$showdots)
Description: This method restores a database from the given filename,
$filename.
Callers should be aware that any errors returned by this method could
causes the database to be inconsistent for the given user.
db_readable
public instance (Boolean) db_readable()
Description: This method returns a boolean value indicating if the
database is in a readable state.
db_writable
public instance (Boolean) db_writable()
Description: This method returns a boolean value indicating if the
database is in a writable state.
_extract_atime
private instance () _extract_atime (String $token,
String $value,
String $index)
Description: This method ensures that the database connection is
properly setup and working. If appropriate it will initialize a users
bayes variables so that they can begin using the database immediately.
_put_token
FIXME: This is rarely a good interface, because of the churn that will
often happen in the "magic" tokens. Open-code this stuff in the
presence of loops.
perl v5.16.3 2014-0Mail::SpamAssassin::BayesStore::BDB(3)