RULEXDB_SUBSCRIBE_RULE(3)

NAME
rulexdb_subscribe_rule - store a new rule into the rulex database

SYNOPSIS
#include <rulexdb.h>

int rulexdb_subscribe_rule(RULEXDB *rulexdb, const char *src, int rule_type, unsigned int position);

DESCRIPTION
The rulexdb_subscribe_rule() function adds a new rule to the specified ruleset in the database referenced by rulexdb argument.

The argument src points to the text representation of the rule to be added.

The argument rule_type specifies the rule type. It may accept one of the following values:

RULEXDB_LEXCLASS
    The rule is the word classifier and should be added to the Classifiers dataset.

RULEXDB_PREFIX
    The rule should be added to the Prefix detectors ruleset.

RULEXDB_RULE
    The rule should be treated as a general rule and added to the General rules dataset.

RULEXDB_CORRECTOR
    The rule is a correction rule and should be added to the Correctors dataset.

The argument position defines position of the newly added rule in the ruleset. If 0, this rule is appended at the end of ruleset, otherwise the new rule will be inserted at the specified position.

RETURN VALUE
The rulexdb_subscribe_rule() function returns RULEXDB_SUCCESS which is zero when success or non-zero error code otherwise.

ERRORS

RULEXDB_FAILURE
    Referenced database has not been opened, internal data structures are corrupted or some other general failure has occurred.

RULEXDB_EINVKEY
    The argument position has a non-zero value, but it is out of the ruleset range that must be continuous.

RULEXDB_EPARM
    The argument rulexdb or rule_type has an invalid value.

RULEXDB_EACCESS
    The database is not opened for updating.

SEE ALSO
rulexdb_classify(3), rulexdb_close(3), rulexdb_dataset_name(3), rulexdb_discard_dictionary(3), rulexdb_discard_ruleset(3), rulexdb_fetch_rule(3), rulexdb_lexbase(3), rulexdb_load_ruleset(3), rulexdb_open(3), rulexdb_remove_item(3), rulexdb_remove_rule(3), rulexdb_remove_this_item(3), rulexdb_retrieve_item(3), rulexdb_search(3), rulexdb_seq(3), rulexdb_subscribe_item(3)

AUTHOR
Igor B. Poretsky <poretsky@mlbox.ru>.