table of contents
other versions
- jessie 3.4.0-6
- jessie-backports 3.4.1-6~bpo8+1
- stretch 3.4.1-6+deb9u1
- testing 3.4.1-8
- unstable 3.4.2-1
Mail::SpamAssassin::BayesStore::BDB(3pm) | User Contributed Perl Documentation | Mail::SpamAssassin::BayesStore::BDB(3pm) |
NAME¶
Mail::SpamAssassin::BayesStore::BDB - BerkeleyDB Bayesian Storage Module ImplementationSYNOPSIS¶
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 atimedump_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 (\@ $tokensString $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 databaseperform_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.2014-02-07 | perl v5.20.1 |