LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
IDataFilter Class Referenceabstract

Base interface for data filter plugins. More...

#include "idatafilter.h"

Classes

struct  FilterVariant
 Describes a single filter variant supported by this data filter. More...
 

Public Member Functions

virtual ~IDataFilter ()
 
virtual QString GetFilterVerb () const =0
 Returns the string describing the data filter. More...
 
virtual QList< FilterVariantGetFilterVariants (const QVariant &data) const =0
 Returns the list of concrete data filter variants. More...
 

Detailed Description

Base interface for data filter plugins.

Data filter plugins provide some means to manipulate and alter data. Examples of such plugins are image uploaders to various image bins, text finders, etc.

A single data filter plugin can support multiple data filter variants, like particular image bins supported by an image uploader or particular OpenSearch engines supported by an OpenSearch handler. The list of possible data filter variants is returned from the GetFilterVariants() function. The list can be dynamic (that is, different in different calls).

Plugins implementing this interface are also expected to implement IEntityHandler, considering (and accepting) entities with MIME "x-leechcraft/data-filter-request". Such entities will contain the entity to filter (like, a piece of text or an image) in the LC::Entity::Entity_ field and may contain the "DataFilter" key in the LC::Entity::Additional_ map with the ID of the exact filter variant to use (if user has already selected it).

filter callbacks

The result of the data filter, if any, can be passed to the plugin emitting the entity. For this the emitting plugin shall set the callback function as the value of the DataFilterCallback LC::Entity::Additional_ map. The function is expected to be an object of type DataFilterCallback_f.

Note
Not all data filter plugins support callbacks. For example, it doesn't make sense for a Google web search data filter to pass the results page contents or URL to the callback. The behavior is expected to be sane enough, though, for the combination of the filtered entity and callback semantics to make sense.
See also
LC::Entity, IEntityHandler
DataFilterCallback_f

Definition at line 69 of file idatafilter.h.

Constructor & Destructor Documentation

◆ ~IDataFilter()

virtual IDataFilter::~IDataFilter ( )
inlinevirtual

Definition at line 97 of file idatafilter.h.

Member Function Documentation

◆ GetFilterVariants()

virtual QList<FilterVariant> IDataFilter::GetFilterVariants ( const QVariant &  data) const
pure virtual

Returns the list of concrete data filter variants.

The passed data could be used to narrow down the list of filters. For instance, an image uploader may want to check the size and dimensions of an image and filter out filters not supporting those specific parameters.

Parameters
[in]dataThe specific piece of data for which the variants should be returned.
Returns
The list of exact data filter variants.

◆ GetFilterVerb()

virtual QString IDataFilter::GetFilterVerb ( ) const
pure virtual

Returns the string describing the data filter.

This function should return the human-readable string describing the data filter plugin in general in an imperative form, like "Upload image to" for an image uploader or "Search in" for a text searcher.

Returns
The human-readable string like "Search in".

The documentation for this class was generated from the following file: