]> git.sur5r.net Git - openldap/blobdiff - include/rewrite.h
Framework for loadable mapper implementations
[openldap] / include / rewrite.h
index ebd361700230116c3a203a4ba82f0d5a358cd62f..4709b078dbd526a9bfab72c1a6adb7ab6a04221d 100644 (file)
@@ -253,6 +253,46 @@ rewrite_param_destroy(
                 struct rewrite_info *info
 );
 
+/*
+ * Mapping implementations
+ */
+
+struct rewrite_mapper;
+
+typedef void * (rewrite_mapper_config)(
+       const char *fname,
+       int lineno,
+       int argc,
+       char **argv );
+
+typedef int (rewrite_mapper_apply)(
+       void *ctx,
+       const char *arg,
+       struct berval *retval );
+
+typedef int (rewrite_mapper_destroy)(
+       void *ctx );
+
+typedef struct rewrite_mapper {
+       char *rm_name;
+       rewrite_mapper_config *rm_config;
+       rewrite_mapper_apply *rm_apply;
+       rewrite_mapper_destroy *rm_destroy;
+} rewrite_mapper;
+
+/* For dynamic loading and unloading of mappers */
+LDAP_REWRITE_F (int)
+rewrite_mapper_register(
+       const rewrite_mapper *map );
+
+LDAP_REWRITE_F (int)
+rewrite_mapper_unregister(
+       const rewrite_mapper *map );
+
+LDAP_REWRITE_F (const rewrite_mapper *)
+rewrite_mapper_find(
+       const char *name );
+
 LDAP_END_DECL
 
 #endif /* REWRITE_H */