diff options
-rw-r--r-- | extensions/Logger.xml | 7 | ||||
-rw-r--r-- | telepathy-logger/dbus-service.c | 19 |
2 files changed, 26 insertions, 0 deletions
diff --git a/extensions/Logger.xml b/extensions/Logger.xml index bb2a456..c05d726 100644 --- a/extensions/Logger.xml +++ b/extensions/Logger.xml @@ -153,6 +153,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ </tp:docstring> </method> + <method name="Clear" + tp:name-for-bindings="Clear"> + <tp:docstring> + Clear all the log. This will not erase the favourite contacts. + </tp:docstring> + </method> + <signal name="FavouriteContactsChanged" tp:name-for-bindings="Favourite_Contacts_Changed"> <tp:docstring> diff --git a/telepathy-logger/dbus-service.c b/telepathy-logger/dbus-service.c index 9f853bc..dd40667 100644 --- a/telepathy-logger/dbus-service.c +++ b/telepathy-logger/dbus-service.c @@ -34,6 +34,7 @@ #include <telepathy-logger/event-internal.h> #include <telepathy-logger/text-event.h> #include <telepathy-logger/log-manager.h> +#include <telepathy-logger/log-manager-internal.h> #include <extensions/extensions.h> @@ -921,6 +922,23 @@ tpl_dbus_service_remove_favourite_contact (TplSvcLogger *logger, pendingproc_remove_favourite_contact (NULL, closure); } + +static void +tpl_dbus_service_clear (TplSvcLogger *logger, + DBusGMethodInvocation *context) +{ + TplDBusService *self = TPL_DBUS_SERVICE (logger); + + g_return_if_fail (TPL_IS_DBUS_SERVICE (self)); + g_return_if_fail (context != NULL); + + /* We want to clear synchronously to avoid concurent write */ + _tpl_log_manager_clear (self->priv->manager); + + tpl_svc_logger_return_from_clear (context); +} + + static void tpl_logger_iface_init (gpointer iface, gpointer iface_data) @@ -932,5 +950,6 @@ tpl_logger_iface_init (gpointer iface, IMPLEMENT (get_favourite_contacts); IMPLEMENT (add_favourite_contact); IMPLEMENT (remove_favourite_contact); + IMPLEMENT (clear); #undef IMPLEMENT } |