gtk/plugins/cap/cap.h

changeset 14573
7e18a0a07718
parent 14412
e2a3932dc608
child 14578
86ee02190858
--- a/gtk/plugins/cap/cap.h	Sun Sep 10 22:33:28 2006 +0000
+++ b/gtk/plugins/cap/cap.h	Mon Sep 11 00:28:35 2006 +0000
@@ -39,100 +39,30 @@
 
 #include "util.h"
 
-#include <dbi/dbi.h>
 #include <glib.h>
 #include <time.h>
+#include <sqlite3.h>
 #include "cap_statistics.h"
 
 #define CAP_PLUGIN_ID "gtk-g-off_-cap"
 
 /* Variables used throughout lifetime of the plugin */
 GaimPlugin *_plugin_pointer;
-dbi_conn _conn = NULL; /**< The database connection */
-dbi_driver _driver = NULL; /**< The database driver */
+sqlite3 *_db; /**< The database */
+
 GHashTable *_buddy_stats = NULL;
 GHashTable *_my_offline_times = NULL;
-GString *error_msg = NULL;
 gboolean _signals_connected;
-gboolean _dbi_initialized;
-int _num_drivers;
-
-enum driver_types {MYSQL};
-
-/* Function definitions */
-static char * quote_string(const char *str);
-static gboolean plugin_load(GaimPlugin *plugin);
-static void add_plugin_functionality(GaimPlugin *plugin);
-static void cancel_conversation_timeouts(gpointer key, gpointer value, gpointer user_data);
-static void remove_plugin_functionality(GaimPlugin *plugin);
-static gboolean plugin_unload(GaimPlugin *plugin);
-static void init_plugin(GaimPlugin *plugin);
-static void generate_prediction(CapStatistics *statistics);
-static double generate_prediction_for(GaimBuddy *buddy);
-static CapStatistics * get_stats_for(GaimBuddy *buddy);
-static void destroy_stats(gpointer data);
-static gboolean remove_stats_for(GaimBuddy *buddy);
-static dbi_result insert_cap_msg_count_success(const char *buddy_name, const char *account, const char *protocol, int minute);
-static dbi_result insert_cap_status_count_success(const char *buddy_name, const char *account, const char *protocol, const char *status_id);
-static dbi_result insert_cap_msg_count_failed(const char *buddy_name, const char *account, const char *protocol, int minute);
-static dbi_result insert_cap_status_count_failed(const char *buddy_name, const char *account, const char *protocol, const char *status_id);
-static void insert_cap_success(CapStatistics *stats);
-static void insert_cap_failure(CapStatistics *stats);
-static gboolean max_message_difference_cb(gpointer data);
-
-/* Various CAP helper functions */
-static const gchar * get_error_msg(void);
-static void set_error_msg(const gchar *msg);
-static void reset_all_last_message_times(gpointer key, gpointer value, gpointer user_data);
-static GaimStatus * get_status_for(GaimBuddy *buddy);
-static void create_tables(void);
-static gboolean create_database_connection(void);
-static void destroy_database_connection(void);
-static guint word_count(const gchar *string);
-static gboolean last_message_time_in_range(CapStatistics *statistics, gdouble max_difference);
-static gboolean last_seen_time_in_range(CapStatistics *statistics, gdouble max_difference);
-static void insert_status_change(CapStatistics *statistics);
-static void insert_status_change_from_gaim_status(CapStatistics *statistics, GaimStatus *status);
-static void insert_word_count(const char *sender, const char *receiver, guint count);
-
-/* Gaim Signal Handlers */
-static void sent_im_msg(GaimAccount *account, const char *receiver, const char *message);
-static void received_im_msg(GaimAccount *account, char *sender, char *message,
-		GaimConversation *conv, GaimMessageFlags flags);
-static void buddy_status_changed(GaimBuddy *buddy, GaimStatus *old_status, GaimStatus *status);
-static void buddy_signed_on(GaimBuddy *buddy);
-static void buddy_signed_off(GaimBuddy *buddy);
-static void buddy_idle(GaimBuddy *buddy, gboolean old_idle, gboolean idle);
-static void blist_node_extended_menu(GaimBlistNode *node, GList **menu);
-static void drawing_tooltip(GaimBlistNode *node, GString *text, gboolean full);
-static void signed_on(GaimConnection *gc);
-static void signed_off(GaimConnection *gc);
-
-/* Call backs */
-void display_statistics_action_cb(GaimBlistNode *node, gpointer data);
+gboolean _sqlite_initialized;
 
 /* Prefs UI */
 typedef struct _CapPrefsUI CapPrefsUI;
 
-struct _CapPrefsUI {
+struct _CapPrefsUI { 
 	GtkWidget *ret;
-	GtkWidget *db_vbox;
 	GtkWidget *cap_vbox;
 	GtkWidget *table_layout;
 
-	GtkWidget *driver_vbox;
-	GtkWidget *driver_select_hbox;
-	GtkWidget *driver_choice;
-	GtkWidget *driver_label;
-	GtkWidget *driver_config_hbox;
-	GtkWidget *driver_config;
-	GtkWidget *driver_connect_button;
-
-	GtkWidget *dbd_label;
-	GtkWidget *dbd_input;
-	GtkWidget *dbd_hbox;
-	GtkWidget *dbd_button;
-
 	GtkWidget *threshold_label;
 	GtkWidget *threshold_input;
 	GtkWidget *threshold_minutes_label;
@@ -146,18 +76,56 @@
 	GtkWidget *last_seen_minutes_label;
 };
 
-static GtkWidget * get_config_frame(GaimPlugin *plugin);
+static void generate_prediction(CapStatistics *statistics);
+static double generate_prediction_for(GaimBuddy *buddy);
+static CapStatistics * get_stats_for(GaimBuddy *buddy);
+static void destroy_stats(gpointer data);
+static void insert_cap_msg_count_success(const char *buddy_name, const char *account, const char *protocol, int minute);
+static void insert_cap_status_count_success(const char *buddy_name, const char *account, const char *protocol, const char *status_id);
+static void insert_cap_msg_count_failed(const char *buddy_name, const char *account, const char *protocol, int minute);
+static void insert_cap_status_count_failed(const char *buddy_name, const char *account, const char *protocol, const char *status_id);
+static void insert_cap_success(CapStatistics *stats);
+static void insert_cap_failure(CapStatistics *stats);
+static gboolean max_message_difference_cb(gpointer data);
+/* Gaim Signal Handlers */
+//sent-im-msg
+static void sent_im_msg(GaimAccount *account, const char *receiver, const char *message);
+//received-im-msg
+static void received_im_msg(GaimAccount *account, char *sender, char *message, GaimConversation *conv, GaimMessageFlags flags);
+//buddy-status-changed
+static void buddy_status_changed(GaimBuddy *buddy, GaimStatus *old_status, GaimStatus *status);
+//buddy-signed-on
+static void buddy_signed_on(GaimBuddy *buddy);
+//buddy-signed-off
+static void buddy_signed_off(GaimBuddy *buddy);
+static void buddy_idle(GaimBuddy *buddy, gboolean old_idle, gboolean idle);
+static void blist_node_extended_menu(GaimBlistNode *node, GList **menu);
+//drawing-tooltip
+static void drawing_tooltip(GaimBlistNode *node, GString *text, gboolean full);
+//signed-on
+static void signed_on(GaimConnection *gc);
+//signed-off
+static void signed_off(GaimConnection *gc);
+static void reset_all_last_message_times(gpointer key, gpointer value, gpointer user_data);
+static GaimStatus * get_status_for(GaimBuddy *buddy);
+static void create_tables();
+static gboolean create_database_connection();
+static void destroy_database_connection();
+static guint word_count(const gchar *string);
+static void insert_status_change(CapStatistics *statistics);
+static void insert_status_change_from_gaim_status(CapStatistics *statistics, GaimStatus *status);
+static void insert_word_count(const char *sender, const char *receiver, guint count);
+void display_statistics_action_cb(GaimBlistNode *node, gpointer data);
+static gboolean plugin_load(GaimPlugin *plugin);
+static void add_plugin_functionality(GaimPlugin *plugin);
+static void cancel_conversation_timeouts(gpointer key, gpointer value, gpointer user_data);
+static void remove_plugin_functionality(GaimPlugin *plugin);
+static void write_stats_on_unload(gpointer key, gpointer value, gpointer user_data);
+static gboolean plugin_unload(GaimPlugin *plugin);
+static CapPrefsUI * create_cap_prefs_ui();
 static void cap_prefs_ui_destroy_cb(GtkObject *object, gpointer user_data);
-static CapPrefsUI * create_cap_prefs_ui(void);
-
-static void driver_choice_changed_cb(GtkComboBox *widget, gpointer user_data);
-static void driver_config_expanded_cb(GObject *object, GParamSpec *param_spec, gpointer user_data);
-static void connect_toggled_cb(GtkToggleButton *togglebutton, gpointer user_data);
 static void numeric_spinner_prefs_cb(GtkSpinButton *spinbutton, gpointer user_data);
-static void driver_location_verify_cb(GtkButton *button, gpointer user_data);
-static gboolean text_entry_prefs_cb(GtkWidget *widget, GdkEventFocus *event, gpointer user_data);
-
-static void set_driver_choice_options(GtkComboBox *chooser); 
-static GtkWidget * get_mysql_config(void);
+static GtkWidget * get_config_frame(GaimPlugin *plugin);
+static void init_plugin(GaimPlugin *plugin);
 
 #endif

mercurial