dbus service: add GetTemplateConfig method
This commit is contained in:
parent
807a10fce9
commit
b8fa1233ad
4 changed files with 122 additions and 3 deletions
|
@ -41,12 +41,19 @@
|
||||||
<method name="GetTemplates">
|
<method name="GetTemplates">
|
||||||
<arg type="a(ss)" name="templates" direction="out" />
|
<arg type="a(ss)" name="templates" direction="out" />
|
||||||
</method>
|
</method>
|
||||||
|
<method name="GetTemplateConfig">
|
||||||
|
<arg type="s" name="server" direction="in" />
|
||||||
|
<arg type="a(sss)" name="properties" direction="out"/>
|
||||||
|
<!-- properties array:
|
||||||
|
namespace, property_name, value
|
||||||
|
"calendar", "sync", "disabled" -->
|
||||||
|
</method>
|
||||||
|
|
||||||
<method name="GetServers">
|
<method name="GetServers">
|
||||||
<arg type="a(ss)" name="servers" direction="out" />
|
<arg type="a(ss)" name="servers" direction="out" />
|
||||||
</method>
|
</method>
|
||||||
<method name="GetServerConfig">
|
<method name="GetServerConfig">
|
||||||
<arg type="s" name="server" direction="in" />
|
<arg type="s" name="template" direction="in" />
|
||||||
<arg type="a(sss)" name="properties" direction="out"/>
|
<arg type="a(sss)" name="properties" direction="out"/>
|
||||||
<!-- properties array:
|
<!-- properties array:
|
||||||
namespace, property_name, value
|
namespace, property_name, value
|
||||||
|
|
|
@ -19,8 +19,9 @@
|
||||||
static gboolean syncevo_start_sync (SyncevoDBusServer *obj, char *server, GPtrArray *sources, GError **error);
|
static gboolean syncevo_start_sync (SyncevoDBusServer *obj, char *server, GPtrArray *sources, GError **error);
|
||||||
static gboolean syncevo_abort_sync (SyncevoDBusServer *obj, char *server, GError **error);
|
static gboolean syncevo_abort_sync (SyncevoDBusServer *obj, char *server, GError **error);
|
||||||
static gboolean syncevo_set_password (SyncevoDBusServer *obj, char *server, char *password, GError **error);
|
static gboolean syncevo_set_password (SyncevoDBusServer *obj, char *server, char *password, GError **error);
|
||||||
static gboolean syncevo_get_servers (SyncevoDBusServer *obj, GPtrArray **servers, GError **error);
|
|
||||||
static gboolean syncevo_get_templates (SyncevoDBusServer *obj, GPtrArray **templates, GError **error);
|
static gboolean syncevo_get_templates (SyncevoDBusServer *obj, GPtrArray **templates, GError **error);
|
||||||
|
static gboolean syncevo_get_template_config (SyncevoDBusServer *obj, char *templ, GPtrArray **options, GError **error);
|
||||||
|
static gboolean syncevo_get_servers (SyncevoDBusServer *obj, GPtrArray **servers, GError **error);
|
||||||
static gboolean syncevo_get_server_config (SyncevoDBusServer *obj, char *server, GPtrArray **options, GError **error);
|
static gboolean syncevo_get_server_config (SyncevoDBusServer *obj, char *server, GPtrArray **options, GError **error);
|
||||||
static gboolean syncevo_set_server_config (SyncevoDBusServer *obj, char *server, GPtrArray *options, GError **error);
|
static gboolean syncevo_set_server_config (SyncevoDBusServer *obj, char *server, GPtrArray *options, GError **error);
|
||||||
#include "syncevo-dbus-glue.h"
|
#include "syncevo-dbus-glue.h"
|
||||||
|
@ -343,6 +344,55 @@ syncevo_get_templates (SyncevoDBusServer *obj,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
syncevo_get_template_config (SyncevoDBusServer *obj,
|
||||||
|
char *templ,
|
||||||
|
GPtrArray **options,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
SyncevoOption *option;
|
||||||
|
|
||||||
|
if (!templ || !options) {
|
||||||
|
*error = g_error_new (g_quark_from_static_string ("syncevo-dbus-server"),
|
||||||
|
1, "Template and options parameters must be given");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj->server) {
|
||||||
|
*error = g_error_new (g_quark_from_static_string ("syncevo-dbus-server"),
|
||||||
|
1, "GetTemplateConfig is currently not supported when a sync is in progress");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*options = g_ptr_array_new ();
|
||||||
|
|
||||||
|
boost::shared_ptr<EvolutionSyncConfig> config (EvolutionSyncConfig::createServerTemplate (string (templ)));
|
||||||
|
if (!config.get()) {
|
||||||
|
*error = g_error_new (g_quark_from_static_string ("syncevo-dbus-server"),
|
||||||
|
1, "No template '%s' found", templ);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
option = syncevo_option_new (NULL, g_strdup ("syncURL"), g_strdup(config->getSyncURL()));
|
||||||
|
g_ptr_array_add (*options, option);
|
||||||
|
option = syncevo_option_new (NULL, g_strdup("username"), g_strdup(config->getUsername()));
|
||||||
|
g_ptr_array_add (*options, option);
|
||||||
|
option = syncevo_option_new (NULL, g_strdup("password"), g_strdup(config->getPassword()));
|
||||||
|
g_ptr_array_add (*options, option);
|
||||||
|
|
||||||
|
list<string> sources = config->getSyncSources();
|
||||||
|
BOOST_FOREACH(const string &name, sources) {
|
||||||
|
boost::shared_ptr<EvolutionSyncSourceConfig> source_config = config->getSyncSourceConfig(name);
|
||||||
|
|
||||||
|
option = syncevo_option_new (g_strdup (name.c_str()), g_strdup ("sync"), g_strdup (source_config->getSync()));
|
||||||
|
g_ptr_array_add (*options, option);
|
||||||
|
option = syncevo_option_new (g_strdup (name.c_str()), g_strdup ("uri"), g_strdup (source_config->getURI()));
|
||||||
|
g_ptr_array_add (*options, option);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
syncevo_get_server_config (SyncevoDBusServer *obj,
|
syncevo_get_server_config (SyncevoDBusServer *obj,
|
||||||
char *server,
|
char *server,
|
||||||
|
@ -364,7 +414,6 @@ syncevo_get_server_config (SyncevoDBusServer *obj,
|
||||||
}
|
}
|
||||||
|
|
||||||
*options = g_ptr_array_new ();
|
*options = g_ptr_array_new ();
|
||||||
const string srv (server);
|
|
||||||
|
|
||||||
boost::shared_ptr<EvolutionSyncConfig> from(new EvolutionSyncConfig (string (server)));
|
boost::shared_ptr<EvolutionSyncConfig> from(new EvolutionSyncConfig (string (server)));
|
||||||
/* if config does not exist, create from template */
|
/* if config does not exist, create from template */
|
||||||
|
|
|
@ -357,6 +357,56 @@ void syncevo_service_get_templates_async (SyncevoService *service,
|
||||||
data);
|
data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean syncevo_service_get_template_config (SyncevoService *service,
|
||||||
|
char *template,
|
||||||
|
GPtrArray **options,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
SyncevoServicePrivate *priv;
|
||||||
|
|
||||||
|
priv = GET_PRIVATE (service);
|
||||||
|
return org_Moblin_SyncEvolution_get_template_config (priv->proxy,
|
||||||
|
template,
|
||||||
|
options,
|
||||||
|
error);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
get_template_config_async_callback (DBusGProxy *proxy,
|
||||||
|
GPtrArray *options,
|
||||||
|
GError *error,
|
||||||
|
SyncevoAsyncData *data)
|
||||||
|
{
|
||||||
|
(*(SyncevoGetTemplateConfigCb)data->callback) (data->service,
|
||||||
|
options,
|
||||||
|
error,
|
||||||
|
data->userdata);
|
||||||
|
g_slice_free (SyncevoAsyncData, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
syncevo_service_get_template_config_async (SyncevoService *service,
|
||||||
|
char *template,
|
||||||
|
SyncevoGetServerConfigCb callback,
|
||||||
|
gpointer userdata)
|
||||||
|
{
|
||||||
|
SyncevoAsyncData *data;
|
||||||
|
SyncevoServicePrivate *priv;
|
||||||
|
|
||||||
|
priv = GET_PRIVATE (service);
|
||||||
|
|
||||||
|
data = g_slice_new0 (SyncevoAsyncData);
|
||||||
|
data->service = service;
|
||||||
|
data->callback = G_CALLBACK (callback);
|
||||||
|
data->userdata = userdata;
|
||||||
|
|
||||||
|
org_Moblin_SyncEvolution_get_template_config_async
|
||||||
|
(priv->proxy,
|
||||||
|
template,
|
||||||
|
(org_Moblin_SyncEvolution_get_server_config_reply) get_template_config_async_callback,
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
|
||||||
gboolean syncevo_service_get_server_config (SyncevoService *service,
|
gboolean syncevo_service_get_server_config (SyncevoService *service,
|
||||||
char *server,
|
char *server,
|
||||||
GPtrArray **options,
|
GPtrArray **options,
|
||||||
|
|
|
@ -73,6 +73,19 @@ void syncevo_service_get_templates_async (SyncevoService *service,
|
||||||
SyncevoGetTemplatesCb callback,
|
SyncevoGetTemplatesCb callback,
|
||||||
gpointer userdata);
|
gpointer userdata);
|
||||||
|
|
||||||
|
gboolean syncevo_service_get_template_config (SyncevoService *service,
|
||||||
|
char *template,
|
||||||
|
GPtrArray **options,
|
||||||
|
GError **error);
|
||||||
|
typedef void (*SyncevoGetTemplateConfigCb) (SyncevoService *service,
|
||||||
|
GPtrArray *options,
|
||||||
|
GError *error,
|
||||||
|
gpointer userdata);
|
||||||
|
void syncevo_service_get_template_config_async (SyncevoService *service,
|
||||||
|
char *template,
|
||||||
|
SyncevoGetTemplateConfigCb callback,
|
||||||
|
gpointer userdata);
|
||||||
|
|
||||||
gboolean syncevo_service_get_server_config (SyncevoService *service,
|
gboolean syncevo_service_get_server_config (SyncevoService *service,
|
||||||
char *server,
|
char *server,
|
||||||
GPtrArray **options,
|
GPtrArray **options,
|
||||||
|
|
Loading…
Reference in a new issue