25 #include "application.h"
28 #include "manager_p.h"
30 #include <libaccounts-glib/ag-account.h>
93 using namespace Accounts;
95 void Manager::Private::init(
Manager *q, AgManager *manager)
98 Q_ASSERT(m_manager == 0);
104 g_signal_connect_swapped
105 (manager,
"account-created",
106 G_CALLBACK(&Private::on_account_created), q);
107 g_signal_connect_swapped
108 (manager,
"account-deleted",
109 G_CALLBACK(&Private::on_account_deleted), q);
110 g_signal_connect_swapped
111 (manager,
"account-updated",
112 G_CALLBACK(&Private::on_account_updated), q);
113 g_signal_connect_swapped
114 (manager,
"enabled-event",
115 G_CALLBACK(&Private::on_enabled_event), q);
117 qWarning() << Q_FUNC_INFO <<
"Initializing with NULL AgManager!";
121 void Manager::Private::on_account_created(
Manager *
self, AgAccountId
id)
123 Q_EMIT
self->accountCreated(
id);
126 void Manager::Private::on_account_deleted(
Manager *
self, AgAccountId
id)
128 Q_EMIT
self->accountRemoved(
id);
131 void Manager::Private::on_account_updated(
Manager *
self, AgAccountId
id)
133 Q_EMIT
self->accountUpdated(
id);
136 void Manager::Private::on_enabled_event(
Manager *
self, AgAccountId
id)
138 Q_EMIT
self->enabledEvent(
id);
150 AgManager *manager = ag_manager_new();
153 d->init(
this, manager);
155 qWarning() <<
"Manager could not be created. DB is locked";
178 ag_manager_new_for_service_type(serviceType.toUtf8().constData());
181 d->init(
this, manager);
183 qWarning() <<
"Manager could not be created, DB is locked";
194 g_signal_handlers_disconnect_by_func
195 (d->m_manager, (
void *)&Private::on_enabled_event,
this);
196 g_signal_handlers_disconnect_by_func
197 (d->m_manager, (
void *)&Private::on_account_updated,
this);
198 g_signal_handlers_disconnect_by_func
199 (d->m_manager, (
void *)&Private::on_account_deleted,
this);
200 g_signal_handlers_disconnect_by_func
201 (d->m_manager, (
void *)&Private::on_account_created,
this);
202 g_object_unref(d->m_manager);
226 const_cast<Manager*>(
this));
245 if (serviceType.isEmpty()) {
246 list = ag_manager_list(d->m_manager);
248 list = ag_manager_list_by_service_type(d->m_manager,
249 serviceType.toUtf8().constData());
253 AccountIdList idList;
256 for (iter = list; iter; iter = g_list_next(iter))
258 idList.append((AccountId)GPOINTER_TO_INT(iter->data));
261 ag_manager_list_free(list);
279 if (serviceType.isEmpty()) {
280 list = ag_manager_list_enabled(d->m_manager);
282 list = ag_manager_list_enabled_by_service_type(d->m_manager,
283 serviceType.toUtf8().constData());
287 AccountIdList idList;
290 for (iter = list; iter; iter = g_list_next(iter))
292 idList.append((AccountId)GPOINTER_TO_INT(iter->data));
295 ag_manager_list_free(list);
308 return new Account(
this, providerName,
this);
320 ag_manager_get_service(d->m_manager,
321 serviceName.toUtf8().constData());
322 return Service(service, StealReference);
339 if (serviceType.isEmpty()) {
340 list = ag_manager_list_services(d->m_manager);
342 list = ag_manager_list_services_by_type(d->m_manager,
343 serviceType.toUtf8().constData());
347 ServiceList servList;
350 for (iter = list; iter; iter = g_list_next(iter))
352 AgService *
service = (AgService*)iter->data;
353 servList.append(
Service(service, StealReference));
371 provider = ag_manager_get_provider(d->m_manager,
372 providerName.toUtf8().constData());
373 return Provider(provider, StealReference);
385 list = ag_manager_list_providers(d->m_manager);
388 ProviderList provList;
391 for (iter = list; iter; iter = g_list_next(iter))
393 AgProvider *
provider = (AgProvider*)iter->data;
394 provList.append(
Provider(provider, StealReference));
411 type = ag_manager_load_service_type(d->m_manager,
412 name.toUtf8().constData());
425 QByteArray ba = applicationName.toUtf8();
427 ag_manager_get_application(d->m_manager, ba.constData());
440 GList *applications, *list;
442 applications = ag_manager_list_applications_by_service(d->m_manager,
444 for (list = applications; list != NULL; list = list->next) {
445 AgApplication *
application = (AgApplication *)list->data;
448 g_list_free (applications);
459 return UTF8(ag_manager_get_service_type (d->m_manager));
473 ag_manager_set_db_timeout(d->m_manager, timeout);
482 return ag_manager_get_db_timeout(d->m_manager);
491 ag_manager_set_abort_on_db_timeout(d->m_manager, abort);
500 return ag_manager_get_abort_on_db_timeout(d->m_manager);