File: collate.h

package info (click to toggle)
389-ds-base 2.3.1%2Bdfsg1-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 37,536 kB
  • sloc: ansic: 306,972; python: 96,937; cpp: 10,257; perl: 2,854; makefile: 2,046; sh: 925; yacc: 806; xml: 379; lex: 366; javascript: 148; java: 50
file content (44 lines) | stat: -rw-r--r-- 1,061 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/** BEGIN COPYRIGHT BLOCK
 * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
 * Copyright (C) 2005 Red Hat, Inc.
 * All rights reserved.
 *
 * License: GPL (version 3 or any later version).
 * See LICENSE for details.
 * END COPYRIGHT BLOCK **/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif


#ifndef _COLLATE_H_
#define _COLLATE_H_

#include <stddef.h> /* size_t */

struct indexer_t;

typedef void (*ix_destroy_t)(struct indexer_t *);
typedef struct berval **(*ix_index_t)(struct indexer_t *, struct berval **values, struct berval **prefixes /* inserted into each key */);

typedef struct indexer_t
{
    char *ix_oid;
    ix_index_t ix_index; /* map values to index keys */
    ix_destroy_t ix_destroy;
    void *ix_etc; /* whatever state the implementation needs */
} indexer_t;

extern void
collation_init(char *configpath);

extern int
collation_config(size_t argc, char **argv, const char *fname, size_t lineno);

extern indexer_t *
collation_indexer_create(const char *oid);

#define COLLATE_PLUGIN_SUBSYSTEM "collation-plugin"

#endif