Fix Spanish translation header
[anjuta.git] / plugins / symbol-db / test-queries / main.c
blobf6e7710a57798f153572fdc2dccf78af44b9953a
1 #include "../symbol-db-engine.h"
2 #include <libanjuta/anjuta-debug.h>
3 #include <gtk/gtk.h>
5 static void on_single_file_scan_end (SymbolDBEngine* engine, GPtrArray* files)
7 static int i = 0;
8 g_message ("Finished [%d]: %s", i, (gchar*)g_ptr_array_index (files, i));
9 i++;
12 static void
13 find_symbol_in_scope (SymbolDBEngine *dbe)
15 SymbolDBEngineIterator *iter;
16 DEBUG_PRINT ("");
18 iter = symbol_db_engine_find_symbol_in_scope (dbe,
19 "%",
21 SYMTYPE_UNDEF,
22 TRUE,
23 -1,
24 -1,
25 SYMINFO_SIMPLE);
27 if (iter == NULL)
29 g_warning ("Iterator null");
30 return;
33 do {
34 SymbolDBEngineIteratorNode *node;
36 node = SYMBOL_DB_ENGINE_ITERATOR_NODE (iter);
38 DEBUG_PRINT ("node name %s",
39 symbol_db_engine_iterator_node_get_symbol_name (node));
41 } while (symbol_db_engine_iterator_move_next (iter) == TRUE);
44 static void
45 find_symbol_by_name_pattern_filtered (SymbolDBEngine *dbe)
47 SymbolDBEngineIterator *iter;
48 DEBUG_PRINT ("");
50 iter = symbol_db_engine_find_symbol_by_name_pattern_filtered (dbe,
51 "TwoC",
52 SYMTYPE_UNDEF,
53 TRUE,
54 SYMSEARCH_FILESCOPE_IGNORE,
55 NULL,
56 -1,
57 -1,
58 SYMINFO_SIMPLE);
60 if (iter == NULL)
62 g_warning ("Iterator null");
63 return;
66 do {
67 SymbolDBEngineIteratorNode *node;
69 node = SYMBOL_DB_ENGINE_ITERATOR_NODE (iter);
71 DEBUG_PRINT ("node name %s",
72 symbol_db_engine_iterator_node_get_symbol_name (node));
74 } while (symbol_db_engine_iterator_move_next (iter) == TRUE);
77 static void
78 get_scope_members_by_path (SymbolDBEngine* dbe)
80 GPtrArray *array;
81 SymbolDBEngineIterator *iter;
83 DEBUG_PRINT ("");
85 array = g_ptr_array_new ();
86 g_ptr_array_add (array, "namespace");
87 // g_ptr_array_add (array, "NSOne");
88 g_ptr_array_add (array, "NSFour");
89 g_ptr_array_add (array, NULL);
91 iter = symbol_db_engine_get_scope_members_by_path (dbe, array, SYMINFO_SIMPLE);
93 if (iter == NULL)
95 g_warning ("Iterator null");
96 return;
99 do {
100 SymbolDBEngineIteratorNode *node;
102 node = SYMBOL_DB_ENGINE_ITERATOR_NODE (iter);
104 DEBUG_PRINT ("node name %s",
105 symbol_db_engine_iterator_node_get_symbol_name (node));
107 } while (symbol_db_engine_iterator_move_next (iter) == TRUE);
110 g_ptr_array_free (array, TRUE);
113 static void
114 do_test_queries (SymbolDBEngine* dbe)
117 // get_scope_members_by_path (dbe);
119 // find_symbol_by_name_pattern_filtered (dbe);
121 find_symbol_in_scope (dbe);
124 static void
125 on_scan_end (SymbolDBEngine* dbe, gpointer user_data)
127 DEBUG_PRINT ("on_scan_end ()");
129 do_test_queries (dbe);
131 symbol_db_engine_close_db (dbe);
132 g_object_unref (dbe);
133 exit(0);
136 int main (int argc, char** argv)
138 SymbolDBEngine* engine;
139 GHashTable *mimes;
140 GPtrArray* files;
141 GPtrArray* languages = g_ptr_array_new();
142 gchar* root_dir;
143 GFile *g_dir;
144 int i;
146 gtk_init(&argc, &argv);
147 g_thread_init (NULL);
148 gda_init ();
150 g_dir = g_file_new_for_path ("sample-db");
151 if (g_dir == NULL)
153 g_warning ("sample-db doesn't exist");
154 return -1;
157 root_dir = g_file_get_path (g_dir);
159 engine = symbol_db_engine_new_full ("anjuta-tags", "sample-db");
161 if (!symbol_db_engine_open_db (engine, root_dir, root_dir))
163 g_message ("Could not open database: %s", root_dir);
164 return -1;
167 symbol_db_engine_add_new_project (engine, NULL, root_dir);
169 mimes = g_hash_table_new (g_str_hash, g_str_equal);
170 g_hash_table_insert (mimes, "text/x-csrc", "text/x-csrc");
171 g_hash_table_insert (mimes, "text/x-chdr", "text/x-chdr");
172 g_hash_table_insert (mimes, "text/x-c++src", "text/x-c++src");
173 g_hash_table_insert (mimes, "text/x-c+++hdr", "text/x-c++hdr");
175 files = symbol_db_util_get_source_files_by_mime (root_dir, mimes);
176 g_hash_table_destroy (mimes);
178 for (i = 0; i < files->len; i++)
180 g_message ("(%d) %s", i, (gchar*)g_ptr_array_index (files, i));
181 g_ptr_array_add (languages, "C");
184 g_signal_connect (engine, "scan-end", G_CALLBACK (on_scan_end), NULL);
185 g_signal_connect (G_OBJECT (engine), "single-file-scan-end",
186 G_CALLBACK (on_single_file_scan_end), files);
188 symbol_db_engine_add_new_files_full (engine, root_dir, files, languages, TRUE);
190 g_free (root_dir);
191 g_object_unref (g_dir);
193 gtk_main();
194 return 0;