Laurent Aguerreche wrote:
> Le lundi 04 septembre 2006 à 13:58 +0100, Jamie McCracken a écrit :
>> Jamie McCracken wrote:
>>
>>> (move do_cleanup to tracker-utils.c/.h and make it non static. We can 
>>> probably use tracker->is_running instead of static shutdown variable in 
>>> trackerd.c too?)
>> Actually we will need a tracker->shutdown variable instead of the static 
>> shutdown variable. Shutdown is used to tell threads to stop (when 
>> asleep) while tracker->is_running encourages them to sleep so they are 
>> different.
> 
> If I move do_cleanup() in tracker-utils.c, I also need to make
> main_connection a field a tracker structure.
> 
> 
> I've just added that in trackerd.c:
> 
> 
> static void
> unregistered_func (DBusConnection *connection,
>                  gpointer        data)
> {
> }
> 
> 
> static DBusHandlerResult
> local_dbus_connection_monitoring_message_func (DBusConnection
> *connection,
>                                              DBusMessage    *message,
>                                              gpointer        data)
> {
>       /* DBus connection has been lost! */
>       if (dbus_message_is_signal (message, DBUS_INTERFACE_LOCAL,
> "Disconnected")) {
>               dbus_message_ref (message);
> 
>               tracker_log ("DBus connection has been lost, trackerd will 
> shutdown");
> 
>               tracker->is_running = FALSE;
>               tracker_end_watching ();
>               do_cleanup ("DBus connection lost");
>       }
> 
>       return DBUS_HANDLER_RESULT_HANDLED;
> }
> 
> 
> static gboolean
> add_local_dbus_connection_monitoring (DBusConnection *connection)
> {
>       DBusObjectPathVTable dbus_daemon_vtable = {
>               unregistered_func,
>               local_dbus_connection_monitoring_message_func,
>               NULL,
>               NULL,
>               NULL,
>               NULL
>       };
> 
>       if (!dbus_connection_register_object_path (connection, DBUS_PATH_LOCAL,
> &dbus_daemon_vtable, NULL)) {
>               tracker_log ("could not register local D-BUS connection 
> handler");
>               return FALSE;
> 
>       } else {
>               return TRUE;
>       }
> }
> 
> 
> 
> and I added a call to add_local_dbus_connection_monitoring() in main().
> 
> That's all...
> 
> 
> 
> But my patch contains more than that. I have begun to clean code. I
> treated those files:
> * trackerd.{h,c}
> * tracker-db.{h,c}
> * tracker-db-mysql.{h,c}
> * tracker-metadata.{h,c}
> * tracker-dbus.{h,c}
> * tracker-dbus-keywords.{h,c}
> * tracker-dbus-search.{h,c}
> * tracker-utils.{h,c}
> 
> 
> This patch:
> 
> - reduces scope of many local variables;
> - removes some foo = NULL at declaration when there is something like:
>    foo = a_function();
>   after...
> - removes initialization of variables at their declaration (more old-C
> like, so 'old' compilers should easily compile the code :-) )
> - rewrites some loops:
> 
>    tmp = foo;
>    while (tmp) {
>       /* many lines ... */
>       tmp = tmp->next;
>    }
> 
>   becomes
> 
>    for (tmp = foo; tmp; tmp = tmp->next) {
>       /* many lines ... */
>    }
> 
> - tries to replace more POSIX functions by corresponding Glib functions:
>   * unlink() => g_unlink()
>   * fopen() => g_open()
>   * opendir() => g_dir_open()
>   * readdir() => g_dir_read_name()
> 
>   Unlike readdir(), g_dir_read_name() ignores '.' and '..'. So I added a
> call to tracker_ignore_file() in tracker_get_files() otherwise file
> names that begin with a dot were treated...
>  - replaces '/tmp' by g_get_tmp_dir();
>  - replaces g_strconcat(path,"/",file,NULL) by
> g_build_filename(path,file,NULL);
>  - replaces '/' by G_DIR_SEPARATOR and "/" by G_DIR_SEPARATOR_S
> 
> So with this replacements and the use of Glib functions rather than
> directly POSIX ones, trackerd becomes less Linux/Unix centric.
> 
> - adds/removes some #include
> - removes many empty lines or spaces, and also added other blank
> lines...
> 
> 
> This patch is rather big but I think it is 'easy' to read since it only
> does trivial things.
> I would like to see it applied to continue on other files...
> 

yes great - thanks a lot!

At first glance it looks very good but will get back to you shortly once 
I've looked at it more closely (always the case with big patches).



-- 
Mr Jamie McCracken
http://jamiemcc.livejournal.com/

_______________________________________________
tracker-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to