25 #include "application.h" 28 #include "manager_p.h" 30 #include <libaccounts-glib/ag-account.h> 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);
222 Account *
account = d->m_accounts.value(
id, 0);
225 account = Account::fromId(const_cast<Manager*>(
this),
id,
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);
Account * account(const AccountId &id) const
Loads an account from the database.
Account * createAccount(const QString &providerName)
Creates a new account.
AccountIdList accountList(const QString &serviceType=QString::null) const
Lists the accounts which support the requested service.
Manager of accounts, services and providers.
void setAbortOnTimeout(bool abort)
Sets whether to abort the application when a database timeout occurs.
Provider provider(const QString &providerName) const
Gets an object representing a provider.
AccountIdList accountListEnabled(const QString &serviceType=QString::null) const
Lists the enabled accounts which support the requested service that also must be enabled.
bool abortOnTimeout() const
Representation of an account provider.
ApplicationList applicationList(const Service &service) const
List the registered applications which support the given service.
Representation of an account service type.
Representation of an account service.
Error lastError() const
Gets the last error.
void setTimeout(quint32 timeout)
Sets the timeout for database operations.
Base object definition for accounts error handling.
Manager(QObject *parent=0)
Constructor.
Information on the client applications of libaccounts.
ServiceList serviceList(const QString &serviceType=QString::null) const
Gets the service list.
Application application(const QString &applicationName) const
Get an object representing an application.
Service service(const QString &serviceName) const
Gets an object representing a service.
quint32 timeout()
Gets the database timeout.
QString serviceType() const
Gets the service type if given in manager constructor.
ProviderList providerList() const
Gets a provider list.