Provided by: spamassassin_4.0.0-4_all bug

NAME

       Mail::SpamAssassin::BayesStore::BDB - BerkeleyDB Bayesian Storage Module Implementation

DESCRIPTION

       This module implements 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 specified 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 count 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 performs 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.