/** 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 #endif #ifndef _COLLATE_H_ #define _COLLATE_H_ #include /* 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); #endif