00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00026 #ifndef _CONNECT_PING_H_
00027 #define _CONNECT_PING_H_
00028 
00029 #include <glib.h>
00030 #include "commonData.h"
00031 #include "pingThread.h"
00032 
00033 typedef enum
00034 {
00035     backgroundPing_e = 0,
00036     connectPing_e,
00037     editPing_e,
00038     undefPingMode_e
00039 }pingMode_t;
00040 
00041 typedef enum
00042 {
00043     pingSucceeded_e=0,
00044     pingFailed_e,
00045     pingFailedPCShare_e,
00046     pingFailedNetwork_e,
00047     pingSkipped_e,
00048     pingNeedKey_e,
00049     pingAborting_e,
00050     pingAborted_e,
00051     pingConnecting_e,
00052     undefPingStatus_e
00053 }pingStatus_t;
00054 
00055 
00056 typedef int get_initial_profile_t(void);
00057 
00058 
00059 typedef int get_n_network_profiles_t(void);
00060 typedef const networkProfile_t* get_network_profile_t(int profileIndex);
00061 typedef gboolean select_next_regprofile_t(int profileIndex); 
00062 
00063 
00064 typedef void ui_update_status_t(int profileIndex, pingStatus_t status);
00065 typedef void ui_display_settings_t(int profileIndex, gboolean resetStatus);
00066 typedef void ui_select_profile_t(int profileIndex);
00067 typedef void ui_unselect_all_profile_t(void);
00068 
00069 
00070 typedef void on_connected_t(int profileIndex);
00071 typedef void on_failed_all_t(void);
00072 
00073 typedef struct
00074 {
00075     pingMode_t        mode;
00076     cmgrConnectType_t connectType;   
00077 
00078     ping_thread_parms* pingParms;    
00079 
00080     
00081     gboolean pingServer;
00082     guint    pingTimeoutId;
00083     gboolean pingAborting;
00084 
00085     int    selectedProfileIndex;     
00086     int    pingingProfileIndexStart; 
00087     int    pingingProfileIndex;      
00088 
00089     get_n_network_profiles_t* get_n_network_profiles;
00090     get_network_profile_t* get_network_profile;
00091     select_next_regprofile_t* select_next_regprofile; 
00092 
00093     get_initial_profile_t* get_initial_profile;
00094 
00095     ui_update_status_t* ui_update_status;
00096     ui_display_settings_t* ui_display_settings;
00097     ui_select_profile_t* ui_select_profile;
00098     ui_unselect_all_profile_t* ui_unselect_all_profile;
00099 
00100     on_connected_t* on_connected;
00101     on_failed_all_t* on_failed_all;
00102 }pingContext_t;
00103 
00104 #ifdef __cplusplus
00105 extern  "C"
00106 {
00107 #endif  
00108 
00109     pingContext_t* connect_ping_ctxt_new(void);
00110 
00111     void connect_ping_ctxt_set_mode(pingContext_t* ctxt, pingMode_t mode);
00112     void connect_ping_ctxt_set_connect_type(pingContext_t* ctxt, 
00113                                             cmgrConnectType_t connectType);
00114 
00115     void connect_ping_ctxt_set_get_initial_profile(pingContext_t* ctxt, 
00116                                get_initial_profile_t* get_initial_profile);
00117 
00118     void connect_ping_ctxt_set_access_network_profiles_callbacks(pingContext_t* ctxt,
00119                         get_n_network_profiles_t* get_n_network_profiles,
00120                         get_network_profile_t* get_network_profile,
00121                         select_next_regprofile_t* select_next_regprofile);
00122 
00123     void connect_ping_ctxt_set_ui_callbacks(pingContext_t* ctxt,
00124                     ui_update_status_t* ui_update_status,
00125                     ui_display_settings_t* ui_display_settings,
00126                     ui_select_profile_t* ui_select_profile,
00127                     ui_unselect_all_profile_t* ui_unselect_all_profile);
00128 
00129     void connect_ping_ctxt_set_done_callbacks(pingContext_t* ctxt, 
00130                                           on_connected_t* on_connected,
00131                                           on_failed_all_t* on_failed_all);
00132 
00133     void connect_ping_ctxt_destory(pingContext_t* ctxt);
00134 
00135     
00136     void connect_ping(pingContext_t* ctxt, gboolean delay);
00137     void connect_ping_abort(pingContext_t* ctxt);
00138 
00139     int connect_ping_get_pinging_profile_index_start(pingContext_t* ctxt);
00140     void connect_ping_set_pinging_profile_index_start(pingContext_t* ctxt, 
00141                                                       int profileIndex);
00142 
00143     int connect_ping_get_pinging_profile_index(pingContext_t* ctxt);
00144     void connect_ping_set_pinging_profile_index(pingContext_t* ctxt, 
00145                                                 int profileIndex);
00146 
00147     int connect_ping_get_selected_profile_index(pingContext_t* ctxt);
00148     void connect_ping_set_selected_profile_index(pingContext_t* ctxt, 
00149                                                  int profileIndex);
00150 
00151     void connect_ping_select_initial_profile (pingContext_t* ctxt);
00152 
00153     
00154     gboolean connect_ping_in_pinging(pingContext_t *ctxt);
00155     
00156     gboolean connect_ping_freeze_ui(pingContext_t* ctxt);
00157 
00158 #ifdef __cplusplus
00159 }
00160 #endif  
00161 
00162 #endif //_CONNECT_PING_H_
00163