fts-tokenizer.c revision 2bb1ef0b669901fb91ff961e7fb074439ef769ab
/* Copyright (c) 2014-2015 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "istream.h"
#include "str.h"
#include "strfuncs.h"
#include "fts-tokenizer.h"
#include "fts-tokenizer-private.h"
void fts_tokenizers_init(void)
{
if (!array_is_created(&fts_tokenizer_classes)) {
}
}
void fts_tokenizers_deinit(void)
{
}
/* private */
{
}
/* private */
{
const struct fts_tokenizer *const *tp;
unsigned int idx;
if (array_count(&fts_tokenizer_classes) == 0)
return;
}
}
i_unreached();
}
{
const struct fts_tokenizer *const *tp;
return *tp;
}
return NULL;
}
{
}
struct fts_tokenizer *parent,
const char *const *settings,
struct fts_tokenizer **tokenizer_r,
const char **error_r)
{
struct fts_tokenizer *tok;
const char *empty_settings = NULL;
*tokenizer_r = 0;
return -1;
}
}
*tokenizer_r = tok;
return 0;
}
{
}
{
return;
}
static int
const char **token_r)
{
int ret = 0;
if (tok->prev_reply_finished) {
/* whole new data */
} else {
/* continuing previous data */
}
if (ret > 0) {
} else if (ret == 0) {
/* we need a new data block */
}
return ret;
}
{
}
const char **token_r)
{
int ret;
switch (tok->parent_state) {
return ret;
tok->parent_state++;
/* fall through */
if (ret != 0)
return ret;
tok->parent_state++;
/* fall through */
if (ret != 0)
return ret;
/* we're finished sending this token to parent tokenizer.
see if our own tokenizer has more tokens available */
default:
i_unreached();
}
}