Fix example that could fail in certain circumstances
[asterisk/asterisk.git] / utils / hashtest2.c
index 5242d34..a9fdf66 100644 (file)
 
 #include "asterisk.h"
 
-#include <sys/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#ifdef HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
-#include <string.h>
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
 #include <pthread.h>
 #include <sys/stat.h>
 #include <signal.h>
-#include <errno.h>
-#include <unistd.h>
 
 #include "asterisk/lock.h"
 #include "asterisk/astobj2.h"
 int testno = 2;
 
 /* stuff we need to make this work with the astobj2 stuff */
-
-void ast_cli(int *fd, char *str, ...)
-{
-}
-
+#if !defined(LOW_MEMORY)
 int64_t ast_mark(int prof_id, int x)
 {
+       return 0;
 }
+#endif
 
 /* my OBJECT */
 struct ht_element 
@@ -69,10 +59,15 @@ struct ht_element
        char *val;
 };
 
+char *pbx_substitute_variables_helper_full(struct ast_channel *chan, struct varshead *head, const char *cp1, char *cp2, int maxlen, size_t *used);
+char *pbx_substitute_variables_helper_full(struct ast_channel *chan, struct varshead *head, const char *cp1, char *cp2, int maxlen, size_t *used)
+{
+       return NULL;
+}
 
 static int hash_string(const void *obj, const int flags)
 {
-       unsigned char *str = ((struct ht_element*)obj)->key;
+       char *str = ((struct ht_element*)obj)->key;
        int total;
 
        for (total=0; *str; str++)
@@ -93,12 +88,12 @@ static int hash_string(const void *obj, const int flags)
 static int hashtab_compare_strings(void *a, void *b, int flags)
 {
        const struct ht_element *ae = a, *be = b;
-       return !strcmp(ae->key, be->key) ? CMP_MATCH : 0;
+       return !strcmp(ae->key, be->key) ? CMP_MATCH | CMP_STOP : 0;
 }
 
 /* random numbers */
 
-my_rand(int incl_low, int incl_high, unsigned int *seedp)
+static int my_rand(int incl_low, int incl_high, unsigned int *seedp)
 {
        if (incl_high == 0)
                return 0;
@@ -122,7 +117,7 @@ int els_traversals = 0;
 
 /* all the operations to perform on the hashtab */
 
-void ht_destroy(void *obj)
+static void ht_destroy(void *obj)
 {
        const struct ht_element *o = obj;
        if (o->key)
@@ -147,16 +142,17 @@ static void add_element(void)
        els_added++; /* unprotected, sometimes off, but, not really important, either */
 }
 
+static int do_nothing_cb(void *obj, void *arg, int flags)
+{
+       return 0;
+}
+
 static void traverse_elements(void)
 {
-       struct ht_element *el;
-       struct ao2_iterator it = ao2_iterator_init(glob_hashtab, 0);
 #ifdef DEBUG
        printf("Traverse hashtab\n");
 #endif
-       while ((el = ao2_iterator_next(&it))) {
-               ao2_ref(el,-1);
-       }
+       ao2_callback(glob_hashtab, OBJ_NODATA, do_nothing_cb, NULL);
        els_traversals++; /* unprotected, sometimes off, but, not really important, either */
 }
 
@@ -219,13 +215,13 @@ static void *hashtest(void *data)
        int my_els_found = 0;
        int my_els_traversals = 0;
        int my_testno = testno++;
+       int its;
        
        /* data will be a random number == use as a seed for random numbers */
        unsigned long seed = (unsigned long)data;
        printf("hashtest thread created... test beginning\n");
        
        /* main test routine-- a global hashtab exists, pound it like crazy  */
-       int its;
        for(its=0;its<100000;its++)
        {
                void *seed2 = &seed;
@@ -267,9 +263,10 @@ static void *hashtest(void *data)
        printf("\ntotals..................... lookups=%d/%d, added=%d, removed=%d; traversals=%d\n",
                   els_found, els_lookedup, els_added, els_removed, els_traversals);
        pthread_exit(0);
+       return NULL;
 }
 
-void run_hashtest(int numthr)
+static void run_hashtest(int numthr)
 {
        pthread_t thr[numthr];
        void *thrres[numthr];
@@ -320,15 +317,12 @@ int main(int argc,char **argv)
        return 0;
 }
 
-
-struct ast_app *pbx_findapp(const char *app)
-{
-       return (struct ast_app*)1; /* so as not to trigger an error */
-}
-
-int  ast_add_profile(const char *x, uint64_t scale)
+#if !defined(LOW_MEMORY)
+int ast_add_profile(const char *x, uint64_t scale)
 {
+       return 0;
 }
+#endif
 
 int ast_loader_register(int (*updater)(void))
 {
@@ -348,27 +342,17 @@ void ast_module_unregister(const struct ast_module_info *x)
 }
 
 
-void ast_cli_register_multiple(void)
-{
-}
-
+void ast_register_file_version(const char *file, const char *version);
 void ast_register_file_version(const char *file, const char *version)
 {
 }
 
+void ast_unregister_file_version(const char *file);
 void ast_unregister_file_version(const char *file)
 {
 
 }
 
-void ast_cli_unregister_multiple(void)
-{
-}
-
-void ast_context_destroy(void)
-{
-}
-
 void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...)
 {
        va_list vars;
@@ -380,7 +364,7 @@ void ast_log(int level, const char *file, int line, const char *function, const
        va_end(vars);
 }
 
-void ast_verbose(const char *fmt, ...)
+void __ast_verbose(const char *file, int line, const char *func, const char *fmt, ...)
 {
         va_list vars;
         va_start(vars,fmt);
@@ -399,3 +383,20 @@ void ast_register_thread(char *name)
 void ast_unregister_thread(void *id)
 {
 }
+
+#ifdef HAVE_BKTR
+struct ast_bt* ast_bt_create(void)
+{
+       return NULL;
+}
+
+int ast_bt_get_addresses(struct ast_bt *bt)
+{
+       return -1;
+}
+
+void *ast_bt_destroy(struct ast_bt *bt)
+{
+       return NULL;
+}
+#endif