00001 #ifndef ICD_SCAN_H 00002 #define ICD_SCAN_H 00003 00017 #include <glib.h> 00018 00019 #include "network_api.h" 00020 #include "dbus_api.h" 00021 00024 struct icd_scan_cache_list { 00026 GSList *cache_list; 00027 }; 00028 00030 struct icd_scan_srv_provider { 00032 gchar *service_type; 00034 gchar *service_name; 00036 guint service_attrs; 00038 gchar *service_id; 00040 gint service_priority; 00041 }; 00042 00044 struct icd_scan_cache { 00046 guint last_seen; 00047 00049 gchar *network_type; 00051 gchar *network_name; 00053 guint network_attrs; 00055 gchar *network_id; 00057 gint network_priority; 00058 00060 enum icd_nw_levels signal; 00061 00063 gchar *station_id; 00065 gint dB; 00066 00068 GSList *srv_provider_list; 00069 }; 00070 00075 struct icd_scan_cache_timeout { 00077 struct icd_network_module *module; 00079 guint id; 00080 }; 00081 00090 typedef void 00091 (*icd_scan_cb_fn) (enum icd_scan_status status, 00092 const struct icd_scan_srv_provider *srv_provider, 00093 const struct icd_scan_cache *cache_entry, 00094 gpointer user_data); 00095 00099 void icd_scan_cache_entry_free (struct icd_scan_cache *cache_entry); 00100 00106 void icd_scan_cache_entry_add (struct icd_network_module *module, 00107 struct icd_scan_cache_list *scan_cache, 00108 struct icd_scan_cache *cache_entry); 00109 00115 struct icd_scan_cache_list * 00116 icd_scan_cache_list_lookup (struct icd_network_module *module, 00117 const gchar *network_id); 00118 00125 struct icd_scan_cache * 00126 icd_scan_cache_entry_find (struct icd_scan_cache_list *scan_cache_list, 00127 const gchar *network_type, 00128 const guint network_attrs); 00129 00137 gboolean icd_scan_cache_entry_remove(struct icd_scan_cache_list *scan_cache_list, 00138 const gchar *network_id, 00139 const gchar *network_type, 00140 const guint network_attrs); 00141 00150 void icd_scan_listener_notify (struct icd_network_module *module, 00151 struct icd_scan_srv_provider *srv_provider, 00152 struct icd_scan_cache *cache_entry, 00153 enum icd_scan_status status); 00154 00155 gboolean icd_scan_results_request (const gchar *type, 00156 const guint scope, 00157 icd_scan_cb_fn cb, 00158 gpointer user_data); 00159 gboolean icd_scan_results_unregister (icd_scan_cb_fn cb, 00160 gpointer user_data); 00161 gboolean icd_scan_cache_init (struct icd_network_module *module); 00162 void icd_scan_cache_remove (struct icd_network_module *module); 00163 00164 void icd_scan_cache_remove_iap(gchar *iap_name); 00165 00168 #endif