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