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">
|
||||
<arg type="a(ss)" name="templates" direction="out" />
|
||||
</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">
|
||||
<arg type="a(ss)" name="servers" direction="out" />
|
||||
</method>
|
||||
<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"/>
|
||||
<!-- properties array:
|
||||
namespace, property_name, value
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
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_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_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_set_server_config (SyncevoDBusServer *obj, char *server, GPtrArray *options, GError **error);
|
||||
#include "syncevo-dbus-glue.h"
|
||||
|
@ -343,6 +344,55 @@ syncevo_get_templates (SyncevoDBusServer *obj,
|
|||
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
|
||||
syncevo_get_server_config (SyncevoDBusServer *obj,
|
||||
char *server,
|
||||
|
@ -364,7 +414,6 @@ syncevo_get_server_config (SyncevoDBusServer *obj,
|
|||
}
|
||||
|
||||
*options = g_ptr_array_new ();
|
||||
const string srv (server);
|
||||
|
||||
boost::shared_ptr<EvolutionSyncConfig> from(new EvolutionSyncConfig (string (server)));
|
||||
/* if config does not exist, create from template */
|
||||
|
|
|
@ -357,6 +357,56 @@ void syncevo_service_get_templates_async (SyncevoService *service,
|
|||
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,
|
||||
char *server,
|
||||
GPtrArray **options,
|
||||
|
|
|
@ -73,6 +73,19 @@ void syncevo_service_get_templates_async (SyncevoService *service,
|
|||
SyncevoGetTemplatesCb callback,
|
||||
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,
|
||||
char *server,
|
||||
GPtrArray **options,
|
||||
|
|
Loading…
Reference in a new issue