]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/proto-back-monitor.h
Added a conformant sortedResults support which is unable to sort anything.
[openldap] / servers / slapd / back-monitor / proto-back-monitor.h
index cfda44b07b10c34d021a53328c21a22c6dbd7fe0..eb0d8422ab7c28ff40a50173ad7ecccbdbdf48dd 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2001-2004 The OpenLDAP Foundation.
+ * Copyright 2001-2005 The OpenLDAP Foundation.
  * Portions Copyright 2001-2003 Pierangelo Masarati.
  * All rights reserved.
  *
 
 #include <ldap_cdefs.h>
 
-#include "external.h"
-
 LDAP_BEGIN_DECL
 
 /*
- * entry
+ * backends
  */
-int monitor_entry_test_flags LDAP_P(( struct monitorentrypriv *mp, int cond ));
+int monitor_subsys_backend_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 
 /*
- * backends
+ * cache
+ */
+extern int monitor_cache_cmp LDAP_P(( const void *c1, const void *c2 ));
+extern int monitor_cache_dup LDAP_P(( void *c1, void *c2 ));
+extern int monitor_cache_add LDAP_P(( monitor_info_t *mi, Entry *e ));
+extern int monitor_cache_get LDAP_P(( monitor_info_t *mi, struct berval *ndn, Entry **ep ));
+extern int monitor_cache_dn2entry LDAP_P(( Operation *op, struct berval *ndn, Entry **ep, Entry **matched ));
+extern int monitor_cache_lock LDAP_P(( Entry *e ));
+extern int monitor_cache_release LDAP_P(( monitor_info_t *mi, Entry *e ));
+
+/*
+ * connections
  */
-int monitor_subsys_backend_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_conn_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
+int monitor_subsys_conn_update LDAP_P(( Operation *op, Entry *e ));
+int monitor_subsys_conn_create LDAP_P(( Operation *op, struct berval *ndn,
+                       Entry *e_parent, Entry **ep ));
 
 /*
  * databases 
  */
-int monitor_subsys_database_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_database_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 int monitor_subsys_database_modify LDAP_P(( Operation *op, Entry *e ));
 
 /*
- * threads
+ * entry
  */
-int monitor_subsys_thread_init LDAP_P(( BackendDB *be ));
-int monitor_subsys_thread_update LDAP_P(( Operation *op, Entry *e ));
+extern int monitor_entry_update LDAP_P(( Operation *op, Entry *e ));
+extern int monitor_entry_create LDAP_P(( Operation *op, struct berval *ndn,
+               Entry *e_parent, Entry **ep ));
+extern int monitor_entry_modify LDAP_P(( Operation *op, Entry *e ));
+int monitor_entry_test_flags LDAP_P(( monitor_entry_t *mp, int cond ));
+extern monitor_entry_t * monitor_entrypriv_create LDAP_P(( void ));
 
 /*
- * connections
+ * init
  */
-int monitor_subsys_conn_init LDAP_P(( BackendDB *be ));
-int monitor_subsys_conn_update LDAP_P(( Operation *op, Entry *e ));
-int monitor_subsys_conn_create LDAP_P(( Operation *op, struct berval *ndn,
-                       Entry *e_parent, Entry **ep ));
+extern int monitor_back_register_subsys LDAP_P(( monitor_subsys_t *ms ));
+extern monitor_subsys_t * monitor_back_get_subsys LDAP_P(( const char *name ));
+extern monitor_subsys_t * monitor_back_get_subsys_by_dn LDAP_P(( struct berval *ndn, int sub ));
+extern int monitor_back_register_entry LDAP_P(( Entry *e, monitor_callback_t *cb ));
+extern int monitor_filter2ndn LDAP_P(( struct berval *base, int scope, struct berval *filter, struct berval *ndn ));
+extern int monitor_back_register_entry_attrs LDAP_P(( struct berval *ndn, Attribute *a, monitor_callback_t *cb, struct berval *base, int scope, struct berval *filter ));
+extern int monitor_back_register_entry_callback LDAP_P(( struct berval *ndn, monitor_callback_t *cb, struct berval *base, int scope, struct berval *filter ));
 
 /*
- * waiters
+ * listener
  */
-int monitor_subsys_rww_init LDAP_P(( BackendDB *be ));
-int monitor_subsys_rww_update LDAP_P(( Operation *op, Entry *e ));
+int monitor_subsys_listener_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 
 /*
  * log
  */
-int monitor_subsys_log_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_log_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 int monitor_subsys_log_modify LDAP_P(( Operation *op, Entry *e ));
 
 /*
  * operations
  */
-int monitor_subsys_ops_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_ops_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 int monitor_subsys_ops_update LDAP_P(( Operation *op, Entry *e ));
 
 /*
  * overlay
  */
-int monitor_subsys_overlay_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_overlay_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 
 /*
  * sent
  */
-int monitor_subsys_sent_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_sent_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 int monitor_subsys_sent_update LDAP_P(( Operation *op, Entry *e ));
 
 /*
- * listener
+ * threads
  */
-int monitor_subsys_listener_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_thread_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
+int monitor_subsys_thread_update LDAP_P(( Operation *op, Entry *e ));
 
 /*
  * time
  */
-int monitor_subsys_time_init LDAP_P(( BackendDB *be ));
+int monitor_subsys_time_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
 int monitor_subsys_time_update LDAP_P(( Operation *op, Entry *e ));
 
+/*
+ * waiters
+ */
+int monitor_subsys_rww_init LDAP_P(( BackendDB *be, monitor_subsys_t *ms ));
+int monitor_subsys_rww_update LDAP_P(( Operation *op, Entry *e ));
+
 /* NOTE: this macro assumes that bv has been allocated
  * by ber_* malloc functions or is { 0L, NULL } */
-#ifdef HAVE_GMP
+#if defined(HAVE_BIGNUM)
+#define UI2BV(bv,ui) \
+       do { \
+               char            *val; \
+               ber_len_t       len; \
+               val = BN_bn2dec(ui); \
+               if (val) { \
+                       len = strlen(val); \
+                       if ( len > (bv)->bv_len ) { \
+                               (bv)->bv_val = ber_memrealloc( (bv)->bv_val, len + 1 ); \
+                       } \
+                       AC_MEMCPY((bv)->bv_val, val, len + 1); \
+                       (bv)->bv_len = len; \
+                       OPENSSL_free(val); \
+               } else { \
+                       ber_memfree( (bv)->bv_val ); \
+                       BER_BVZERO( (bv) ); \
+               } \
+       } while ( 0 )
+#elif defined(HAVE_GMP)
 /* NOTE: according to the documentation, the result 
  * of mpz_sizeinbase() can exceed the length of the
  * string representation of the number by 1
@@ -116,7 +160,7 @@ int monitor_subsys_time_update LDAP_P(( Operation *op, Entry *e ));
                } \
                (bv)->bv_len = len; \
        } while ( 0 )
-#else /* ! HAVE_GMP */
+#else /* ! HAVE_BIGNUM && ! HAVE_GMP */
 #define UI2BV(bv,ui) \
        do { \
                char            buf[] = "+9223372036854775807L"; \
@@ -130,6 +174,24 @@ int monitor_subsys_time_update LDAP_P(( Operation *op, Entry *e ));
        } while ( 0 )
 #endif /* ! HAVE_GMP */
 
+/*
+ * former external.h
+ */
+
+extern BI_init                 monitor_back_initialize;
+
+extern BI_db_init              monitor_back_db_init;
+extern BI_db_open              monitor_back_db_open;
+extern BI_config               monitor_back_config;
+extern BI_db_destroy           monitor_back_db_destroy;
+extern BI_db_config            monitor_back_db_config;
+
+extern BI_op_search            monitor_back_search;
+extern BI_op_compare           monitor_back_compare;
+extern BI_op_modify            monitor_back_modify;
+extern BI_op_bind              monitor_back_bind;
+extern BI_operational          monitor_back_operational;
+
 LDAP_END_DECL
 
 #endif /* _PROTO_BACK_MONITOR */