summaryrefslogtreecommitdiff
path: root/telepathy-logger/log-store-xml.c
diff options
context:
space:
mode:
Diffstat (limited to 'telepathy-logger/log-store-xml.c')
-rw-r--r--telepathy-logger/log-store-xml.c114
1 files changed, 54 insertions, 60 deletions
diff --git a/telepathy-logger/log-store-xml.c b/telepathy-logger/log-store-xml.c
index ee52cdc63..828e0d592 100644
--- a/telepathy-logger/log-store-xml.c
+++ b/telepathy-logger/log-store-xml.c
@@ -79,16 +79,17 @@
struct _TplLogStoreXmlPriv
{
+ gchar *name;
+ gboolean writable;
gchar *basedir;
- gboolean test_mode;
TpAccountManager *account_manager;
};
enum {
PROP_0,
+ PROP_NAME,
PROP_READABLE,
- PROP_BASEDIR,
- PROP_TESTMODE
+ PROP_WRITABLE,
};
static void log_store_iface_init (gpointer g_iface, gpointer iface_data);
@@ -134,6 +135,8 @@ log_store_xml_finalize (GObject *object)
TplLogStoreXml *self = TPL_LOG_STORE_XML (object);
TplLogStoreXmlPriv *priv = self->priv;
+ g_free (self->priv->name);
+
if (priv->basedir != NULL)
{
g_free (priv->basedir);
@@ -148,18 +151,18 @@ tpl_log_store_xml_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- TplLogStoreXmlPriv *priv = TPL_LOG_STORE_XML (object)->priv;
+ TplLogStoreXml *self = TPL_LOG_STORE_XML (object);
switch (param_id)
{
+ case PROP_NAME:
+ g_value_set_string (value, self->priv->name);
+ break;
case PROP_READABLE:
g_value_set_boolean (value, TRUE);
break;
- case PROP_BASEDIR:
- g_value_set_string (value, priv->basedir);
- break;
- case PROP_TESTMODE:
- g_value_set_boolean (value, priv->test_mode);
+ case PROP_WRITABLE:
+ g_value_set_boolean (value, self->priv->writable);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -178,11 +181,11 @@ tpl_log_store_xml_set_property (GObject *object,
switch (param_id)
{
- case PROP_BASEDIR:
- log_store_xml_set_basedir (self, g_value_get_string (value));
+ case PROP_NAME:
+ self->priv->name = g_value_dup_string (value);
break;
- case PROP_TESTMODE:
- self->priv->test_mode = g_value_get_boolean (value);
+ case PROP_WRITABLE:
+ self->priv->writable = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -195,32 +198,15 @@ static void
_tpl_log_store_xml_class_init (TplLogStoreXmlClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GParamSpec *param_spec;
object_class->finalize = log_store_xml_finalize;
object_class->dispose = log_store_xml_dispose;
object_class->get_property = tpl_log_store_xml_get_property;
object_class->set_property = tpl_log_store_xml_set_property;
+ g_object_class_override_property (object_class, PROP_NAME, "name");
g_object_class_override_property (object_class, PROP_READABLE, "readable");
-
- /**
- * TplLogStoreXml:basedir:
- *
- * The log store's basedir.
- */
- param_spec = g_param_spec_string ("basedir",
- "Basedir",
- "The TplLogStore implementation's name",
- NULL, G_PARAM_READABLE | G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
- g_object_class_install_property (object_class, PROP_BASEDIR, param_spec);
-
- param_spec = g_param_spec_boolean ("testmode",
- "TestMode",
- "Whether the logstore is in testmode, for testsuite use only",
- FALSE, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS);
- g_object_class_install_property (object_class, PROP_TESTMODE, param_spec);
+ g_object_class_override_property (object_class, PROP_WRITABLE, "writable");
g_type_class_add_private (object_class, sizeof (TplLogStoreXmlPriv));
}
@@ -673,6 +659,7 @@ log_store_xml_add_event (TplLogStore *store,
GError **error)
{
TplLogStoreXml *self = TPL_LOG_STORE_XML (store);
+ gchar *name;
g_return_val_if_fail (TPL_IS_EVENT (event), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@@ -682,10 +669,13 @@ log_store_xml_add_event (TplLogStore *store,
else if (TPL_IS_CALL_EVENT (event))
return add_call_event (self, TPL_CALL_EVENT (event), error);
+ name = _tpl_log_store_dup_name (store);
+
DEBUG ("TplEntry not handled by this LogStore (%s). "
- "Ignoring Event", _tpl_log_store_get_name (store));
+ "Ignoring Event", name);
/* do not consider it an error, this LogStore simply do not want/need
* this Event */
+ g_free (name);
return TRUE;
}
@@ -1736,18 +1726,6 @@ log_store_xml_get_entities (TplLogStore *store,
return entities;
}
-
-static const gchar *
-log_store_xml_get_name (TplLogStore *store)
-{
- TplLogStoreXml *self = (TplLogStoreXml *) store;
-
- g_return_val_if_fail (TPL_IS_LOG_STORE_XML (self), NULL);
-
- return "TpLogger";
-}
-
-
/* returns am absolute path for the base directory of LogStore */
static const gchar *
log_store_xml_get_basedir (TplLogStoreXml *self)
@@ -1759,22 +1737,13 @@ log_store_xml_get_basedir (TplLogStoreXml *self)
if (self->priv->basedir == NULL)
{
gchar *dir;
- const char *user_data_dir;
- const char *name;
+ char *name;
- if (self->priv->test_mode && g_getenv ("TPL_TEST_LOG_DIR") != NULL)
- {
- user_data_dir = g_getenv ("TPL_TEST_LOG_DIR");
- }
- else
- {
- user_data_dir = g_get_user_data_dir ();
- }
-
- name = _tpl_log_store_get_name ((TplLogStore *) self);
- dir = g_build_path (G_DIR_SEPARATOR_S, user_data_dir, name, "logs",
- NULL);
+ name = _tpl_log_store_dup_name ((TplLogStore *) self);
+ dir = g_build_path (G_DIR_SEPARATOR_S, g_get_user_data_dir (), name,
+ "logs", NULL);
log_store_xml_set_basedir (self, dir);
+ g_free (name);
g_free (dir);
}
@@ -1931,7 +1900,6 @@ log_store_iface_init (gpointer g_iface,
{
TplLogStoreInterface *iface = (TplLogStoreInterface *) g_iface;
- iface->get_name = log_store_xml_get_name;
iface->exists = log_store_xml_exists;
iface->add_event = log_store_xml_add_event;
iface->get_dates = log_store_xml_get_dates;
@@ -1944,3 +1912,29 @@ log_store_iface_init (gpointer g_iface,
iface->clear_entity = log_store_xml_clear_entity;
iface->create_iter = log_store_xml_create_iter;
}
+
+TplLogStore *
+_tpl_log_store_xml_new (void)
+{
+ return g_object_new (TPL_TYPE_LOG_STORE_XML,
+ "name", "telepathy-1",
+ NULL);
+}
+
+TplLogStore *
+_tpl_log_store_empathy_new (void)
+{
+ return g_object_new (TPL_TYPE_LOG_STORE_XML,
+ "name", "Empathy",
+ "writable", FALSE,
+ NULL);
+}
+
+TplLogStore *
+_tpl_log_store_xml_legacy_new (void)
+{
+ return g_object_new (TPL_TYPE_LOG_STORE_XML,
+ "name", "TpLogger",
+ "writable", FALSE,
+ NULL);
+}