Mail::SpamAssassin::BayesStore(3p)

NAME
Mail::SpamAssassin::BayesStore - Bayesian Storage Module

DESCRIPTION
This is the public API for the Bayesian store methods. Any implementation of the storage module must implement these methods.

METHODS

new public class (Mail::SpamAssassin::BayesStore) new (Mail::SpamAssassin::Bayes $bayes)

    Description: This method creates a new instance of the Mail::SpamAssassin::BayesStore object. You must pass in an instance of the Mail::SpamAssassin:Bayes object, which is stashed for use throughout the module.

DB_VERSION
    public instance (Integer) DB_VERSION ()

    Description: This method returns the currently supported database version for the implementation.

read_db_configs
    public instance () read_db_configs ()

    Description: This method reads any needed config variables from the configuration object and then calls the Mail::SpamAssassin::Bayes read_db_configs method.

tie_db_readonly
    public instance (Boolean) tie_db_readonly ()

    Description: This method opens up the database in readonly mode.

tie_db_writable
    public instance (Boolean) tie_db_writable ()

    Description: This method opens up the database in writable mode.

    Any callers of this methods should ensure that they call untie_db() afterwards.

untie_db
    public instance () untie_db ()

    Description: This method unties the database.

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 $newest_atime,
                            Integer $newdelta)

    Description: This method performs the database specific expiration of tokens based on the passed in $newest_atime and $newdelta.

expire_old_tokens
    public instance (Boolean) expire_old_tokens (\% hashref)

    Description: This method expires old tokens from the database.

expire_old_tokens_trapped
    public instance (Boolean) expire_old_tokens_trapped (\% $opts)

    Description: This methods does the actual token expiration.

    XXX More docs here about the methodology and what not

sync_due
    public instance (Boolean) sync_due ()

    Description: This methods determines if a sync is due.

expiry_due
    public instance (Boolean) expiry_due ()

    Description: This methods determines if an expire is due.

seen_get
    public instance (Char) 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 instance (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 storage.

get_storage_variables
    public instance (@) get_storage_variables ()

    Description: This method retrieves the various administrative variables used by the Bayes storage implementation.

    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_db_toks
    public instance () dump_db_toks (String $template, String $regex, @ @vars)

    Description: This method loops over all tokens, computing the probability for the token and then printing it out according to the passed in template.

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 (Time) get_running_expire_tok ()

    Description: This method determines if an expire is currently running and returns the time the expire started.

set_running_expire_tok
    public instance (Time) set_running_expire_tok ()

    Description: This method sets the running expire time to the current time.

remove_running_expire_tok
    public instance (Boolean) remove_running_expire_tok ()

    Description: This method removes a currently set running expire time.

tok_get
    public instance (Integer, Integer, Time) tok_get (String $token)

    Description: This method retrieves the specified token ($token) from storage and returns it's spam count, ham acount and last access time.

tok_get_all
    public instance (\@) tok_get_all (@ @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 $spam_count,
                            Integer $ham_count,
                            String $token,
                            Time $atime)

    Description: This method takes a $spam_count and $ham_count and adds it to $token along with updating $tokens atime with $atime.

multi_tok_count_change
    public instance (Boolean) multi_tok_count_change (Integer $spam_count,
                            Integer $ham_count,
                            \% $tokens,
                            String $atime)

    Description: This method takes a $spam_count and $ham_count 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 (Integer, Integer) nspam_nham_get ()

    Description: This method retrieves the total number of spam and the total number of spam currently under storage.

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,
                            Time $atime)

    Description: This method updates the given tokens ($token) access time.

tok_touch_all
    public instance (Boolean) tok_touch_all (\@ $tokens,
                            Time $atime)

    Description: This method does a mass update of the given list of tokens $tokens, if the existing token atime is < $atime.

cleanup
    public instance (Boolean) cleanup ()

    Description: This method performs any cleanup necessary before moving onto the next operation.

get_magic_re
    public instance get_magic_re (String)

    Description: This method returns a regexp which indicates a magic token.

sync
    public instance (Boolean) sync (\% $opts)

    Description: This method performs a sync of the database.

perform_upgrade
    public instance (Boolean) perform_upgrade (\% $opts)

    Description: This method is a utility method that performs any necessary upgrades between versions. It should know how to handle previous versions and what needs to happen to upgrade them.

    A true return value indicates success.

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 marchine 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 whether or not the Bayes DB is available in a readable state.

db_writable
    public instance (Boolean) db_writable ()

    Description: This method returns whether or not the Bayes DB is available in a writable state.