mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +09:00
174 lines
5.8 KiB
Text
174 lines
5.8 KiB
Text
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
|
|
||
|
|
/**
|
||
|
|
* This interface provides management of traits that are used to categorize
|
||
|
|
* messages. A trait is some characteristic of a message, such as being "junk"
|
||
|
|
* or "personal", that may be discoverable by analysis of the message.
|
||
|
|
*
|
||
|
|
* Traits are described by a universal identifier "id" as a string, as well
|
||
|
|
* as a local integer identifer "index". One purpose of this service is to
|
||
|
|
* provide the mapping between those forms.
|
||
|
|
*
|
||
|
|
* Recommended (but not required) format for id:
|
||
|
|
* "extensionName@example.org#traitName"
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include "nsISupports.idl"
|
||
|
|
|
||
|
|
[scriptable, uuid(2CB15FB0-A912-40d3-8882-F2765C75655F)]
|
||
|
|
interface nsIMsgTraitService : nsISupports
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* the highest ever index for a registered trait. The first trait is 1,
|
||
|
|
* == 0 means no traits are defined
|
||
|
|
*/
|
||
|
|
readonly attribute long lastIndex;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Register a trait. May be called multiple times, but subsequent
|
||
|
|
* calls do not register the trait
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
*
|
||
|
|
* @return the internal index for the registered trait if newly
|
||
|
|
* registered, else 0
|
||
|
|
*/
|
||
|
|
unsigned long registerTrait(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Unregister a trait.
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
*/
|
||
|
|
void unRegisterTrait(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* is a trait registered?
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
*
|
||
|
|
* @return true if registered
|
||
|
|
*/
|
||
|
|
boolean isRegistered(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set the trait name, which is an optional short description of the trait
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
* @param name description of the trait.
|
||
|
|
*/
|
||
|
|
void setName(in ACString id, in ACString name);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* get the trait name, which is an optional short description of the trait
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
*
|
||
|
|
* @return description of the trait
|
||
|
|
*/
|
||
|
|
ACString getName(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* get the internal index number for the trait.
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
*
|
||
|
|
* @return internal index number for the trait
|
||
|
|
*/
|
||
|
|
unsigned long getIndex(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* get the trait universal identifier for an internal trait index
|
||
|
|
*
|
||
|
|
* @param index the internal identifier for the trait
|
||
|
|
*
|
||
|
|
* @return trait universal identifier
|
||
|
|
*/
|
||
|
|
ACString getId(in unsigned long index);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* enable the trait for analysis. Each enabled trait will be analyzed by
|
||
|
|
* the bayesian code. The enabled trait is the "pro" trait that represents
|
||
|
|
* messages matching the trait. Each enabled trait also needs a corresponding
|
||
|
|
* anti trait defined, which represents messages that do not match the trait.
|
||
|
|
* The anti trait does not need to be enabled
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
* @param enabled should this trait be processed by the bayesian analyzer?
|
||
|
|
*/
|
||
|
|
void setEnabled(in ACString id, in boolean enabled);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Should this trait be processed by the bayes analyzer?
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
*
|
||
|
|
* @return true if this is a "pro" trait to process
|
||
|
|
*/
|
||
|
|
boolean getEnabled(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set the anti trait, which indicates messages that have been marked as
|
||
|
|
* NOT matching a particular trait.
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier
|
||
|
|
* @param antiId trait id for messages marked as not matching the trait
|
||
|
|
*/
|
||
|
|
void setAntiId(in ACString id, in ACString antiId);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* get the id of traits that do not match a particular trait
|
||
|
|
*
|
||
|
|
* @param id the trait universal identifier for a "pro" trait
|
||
|
|
*
|
||
|
|
* @return universal trait identifier for an "anti" trait that does not
|
||
|
|
* match the "pro" trait messages
|
||
|
|
*/
|
||
|
|
ACString getAntiId(in ACString id);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* get an array of traits to be analyzed by the bayesian code. This is
|
||
|
|
* a pair of traits: a "pro" trait of messages that match the trait (and is
|
||
|
|
* set enabled) and an "anti" trait of messages that do not match the trait.
|
||
|
|
*
|
||
|
|
* @param count length of proIndices and antiIndices arrays
|
||
|
|
* @param proIndices trait internal index for "pro" trait to analyze
|
||
|
|
* @param antiIndices trait internal index for corresponding "anti" traits
|
||
|
|
*/
|
||
|
|
void getEnabledIndices(out unsigned long count,
|
||
|
|
[array, size_is(count)] out unsigned long proIndices,
|
||
|
|
[array, size_is(count)] out unsigned long antiIndices);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Add a trait as an alias of another trait. An alias is a trait whose
|
||
|
|
* counts will be combined with the aliased trait. This allows multiple sets
|
||
|
|
* of corpus data to be used to provide information on a single message
|
||
|
|
* characteristic, while allowing each individual set of corpus data to
|
||
|
|
* retain its own identity.
|
||
|
|
*
|
||
|
|
* @param aTraitIndex the internal identifier for the aliased trait
|
||
|
|
* @param aTraitAlias the internal identifier for the alias to add
|
||
|
|
*/
|
||
|
|
void addAlias(in unsigned long aTraitIndex, in unsigned long aTraitAlias);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Removes a trait as an alias of another trait.
|
||
|
|
*
|
||
|
|
* @param aTraitIndex the internal identifier for the aliased trait
|
||
|
|
* @param aTraitAlias the internal identifier for the alias to remove
|
||
|
|
*/
|
||
|
|
void removeAlias(in unsigned long aTraitIndex, in unsigned long aTraitAlias);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get an array of trait aliases for a trait index, if any
|
||
|
|
*
|
||
|
|
* @param aTraitIndex the internal identifier for the aliased trait
|
||
|
|
* @param aLength length of array of aliases
|
||
|
|
* @param aAliases array of internal identifiers for aliases
|
||
|
|
*/
|
||
|
|
void getAliases(in unsigned long aTraitIndex, out unsigned long aLength,
|
||
|
|
[retval, array, size_is(aLength)] out unsigned long aAliases);
|
||
|
|
|
||
|
|
};
|