00001 #ifndef ICD_NETWORK_API_H 00002 #define ICD_NETWORK_API_H 00003 00016 #include <glib.h> 00017 00018 #include "network_api.h" 00019 #include "icd_context.h" 00020 00022 struct icd_network_module { 00024 void *handle; 00026 gchar *name; 00028 GSList *network_types; 00030 GSList *pid_list; 00031 00035 guint scope; 00037 gboolean scan_progress; 00039 gint scan_timeout_rescan; 00041 GSList *scan_timeout_list; 00043 GHashTable *scan_cache_table; 00045 GSList *scan_listener_list; 00046 00048 struct icd_nw_api nw; 00049 }; 00050 00057 typedef gboolean 00058 (*icd_network_api_foreach_module_fn) (struct icd_network_module* module, 00059 gpointer user_data); 00060 00061 gboolean icd_network_api_has_type (struct icd_network_module *module, 00062 const gchar *type); 00063 struct icd_network_module * 00064 icd_network_api_foreach_module (struct icd_context *icd_ctx, 00065 icd_network_api_foreach_module_fn foreach_fn, 00066 gpointer user_data); 00067 gboolean icd_network_api_notify_pid (struct icd_context *icd_ctx, 00068 const pid_t pid, 00069 const gint exit_value); 00070 gboolean icd_network_api_load_modules (struct icd_context *icd_ctx); 00071 void icd_network_api_unload_modules (struct icd_context *icd_ctx); 00072 00075 #endif