1 #include "../symbol-db-engine.h"
2 #include <libanjuta/anjuta-debug.h>
5 static void on_single_file_scan_end (SymbolDBEngine
* engine
, GPtrArray
* files
)
8 g_message ("Finished [%d]: %s", i
, (gchar
*)g_ptr_array_index (files
, i
));
13 find_symbol_in_scope (SymbolDBEngine
*dbe
)
15 SymbolDBEngineIterator
*iter
;
18 iter
= symbol_db_engine_find_symbol_in_scope (dbe
,
29 g_warning ("Iterator null");
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
);
45 find_symbol_by_name_pattern_filtered (SymbolDBEngine
*dbe
)
47 SymbolDBEngineIterator
*iter
;
50 iter
= symbol_db_engine_find_symbol_by_name_pattern_filtered (dbe
,
54 SYMSEARCH_FILESCOPE_IGNORE
,
62 g_warning ("Iterator null");
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
);
78 get_scope_members_by_path (SymbolDBEngine
* dbe
)
81 SymbolDBEngineIterator
*iter
;
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
);
95 g_warning ("Iterator null");
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
);
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
);
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
);
136 int main (int argc
, char** argv
)
138 SymbolDBEngine
* engine
;
141 GPtrArray
* languages
= g_ptr_array_new();
146 gtk_init(&argc
, &argv
);
147 g_thread_init (NULL
);
150 g_dir
= g_file_new_for_path ("sample-db");
153 g_warning ("sample-db doesn't exist");
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
);
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
);
191 g_object_unref (g_dir
);