25#include "application.h"
30#include <libaccounts-glib.h>
93using namespace Accounts;
95void Manager::Private::init(
Manager *q, AgManager *manager)
97 Q_ASSERT(q_ptr ==
nullptr);
98 Q_ASSERT(m_manager ==
nullptr);
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!";
121void Manager::Private::on_account_created(
Manager *self, AgAccountId
id)
126void Manager::Private::on_account_deleted(
Manager *self, AgAccountId
id)
131void Manager::Private::on_account_updated(
Manager *self, AgAccountId
id)
136void Manager::Private::on_enabled_event(
Manager *self, AgAccountId
id)
150 AgManager *manager = ag_manager_new();
152 if (manager !=
nullptr) {
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());
180 if (manager !=
nullptr) {
181 d->init(
this, manager);
183 qWarning() <<
"Manager could not be created, DB is locked";
200 GError *error = NULL;
202 (AgManager *)g_initable_new(AG_TYPE_MANAGER, NULL, &error,
203 "use-dbus", !disableNotifications,
205 if (Q_LIKELY(manager)) {
206 d->init(
this, manager);
208 qWarning() <<
"Manager could not be created." << error->message;
209 d->lastError =
Error(error);
219 g_signal_handlers_disconnect_by_func
220 (d->m_manager, (
void *)&Private::on_enabled_event,
this);
221 g_signal_handlers_disconnect_by_func
222 (d->m_manager, (
void *)&Private::on_account_updated,
this);
223 g_signal_handlers_disconnect_by_func
224 (d->m_manager, (
void *)&Private::on_account_deleted,
this);
225 g_signal_handlers_disconnect_by_func
226 (d->m_manager, (
void *)&Private::on_account_created,
this);
227 g_object_unref(d->m_manager);
247 Account *
account = d->m_accounts.value(
id, 0);
271 list = ag_manager_list(d->m_manager);
273 list = ag_manager_list_by_service_type(d->m_manager,
278 AccountIdList idList;
281 for (iter = list; iter; iter = g_list_next(iter))
283 idList.append((AccountId)GPOINTER_TO_INT(iter->data));
286 ag_manager_list_free(list);
305 list = ag_manager_list_enabled(d->m_manager);
307 list = ag_manager_list_enabled_by_service_type(d->m_manager,
312 AccountIdList idList;
315 for (iter = list; iter; iter = g_list_next(iter))
317 idList.append((AccountId)GPOINTER_TO_INT(iter->data));
320 ag_manager_list_free(list);
333 return new Account(
this, providerName,
this);
345 ag_manager_get_service(d->m_manager,
346 serviceName.toUtf8().constData());
365 list = ag_manager_list_services(d->m_manager);
367 list = ag_manager_list_services_by_type(d->m_manager,
372 ServiceList servList;
375 for (iter = list; iter; iter = g_list_next(iter))
377 AgService *
service = (AgService*)iter->data;
397 list = ag_manager_list_services_by_application(d->m_manager,
401 ServiceList servList;
404 for (iter = list; iter; iter = g_list_next(iter))
406 AgService *
service = (AgService*)iter->data;
425 provider = ag_manager_get_provider(d->m_manager,
426 providerName.toUtf8().constData());
439 list = ag_manager_list_providers(d->m_manager);
442 ProviderList provList;
445 for (iter = list; iter; iter = g_list_next(iter))
447 AgProvider *
provider = (AgProvider*)iter->data;
465 type = ag_manager_load_service_type(d->m_manager,
466 name.toUtf8().constData());
479 QByteArray ba = applicationName.toUtf8();
481 ag_manager_get_application(d->m_manager, ba.constData());
494 GList *applications, *list;
496 applications = ag_manager_list_applications_by_service(d->m_manager,
498 for (list = applications; list != NULL; list = list->next) {
499 AgApplication *
application = (AgApplication *)list->data;
502 g_list_free (applications);
513 return UTF8(ag_manager_get_service_type (d->m_manager));
527 ag_manager_set_db_timeout(d->m_manager,
timeout);
536 return ag_manager_get_db_timeout(d->m_manager);
545 ag_manager_set_abort_on_db_timeout(d->m_manager, abort);
554 return ag_manager_get_abort_on_db_timeout(d->m_manager);
562 gboolean useDBus =
true;
563 g_object_get(d->m_manager,
564 "use-dbus", &useDBus,
Information on the client applications of libaccounts.
Application()
Construct an invalid application.
Base object definition for accounts error handling.
Error()
Basic constructor.
Manager of accounts, services and providers.
Application application(const QString &applicationName) const
Get an object representing an application.
void accountCreated(Accounts::AccountId id)
The signal is emitted when new account is created.
AccountIdList accountListEnabled(const QString &serviceType=QString()) const
Lists the enabled accounts which support the requested service that also must be enabled.
ApplicationList applicationList(const Service &service) const
List the registered applications which support the given service.
ProviderList providerList() const
Gets a provider list.
Provider provider(const QString &providerName) const
Gets an object representing a provider.
void accountUpdated(Accounts::AccountId id)
The signal is emitted when any account property for a particular service is updated.
QString serviceType() const
Gets the service type if given in manager constructor.
void setTimeout(quint32 timeout)
Sets the timeout for database operations.
void accountRemoved(Accounts::AccountId id)
The signal is emitted when existing account is removed.
AccountIdList accountList(const QString &serviceType=QString()) const
Lists the accounts which support the requested service.
Account * account(const AccountId &id) const
Loads an account from the database.
Manager(QObject *parent=nullptr)
Constructor.
void enabledEvent(Accounts::AccountId id)
If the manager has been created with serviceType, this signal will be emitted when an account (identi...
void setAbortOnTimeout(bool abort)
Sets whether to abort the application when a database timeout occurs.
bool abortOnTimeout() const
Service service(const QString &serviceName) const
Gets an object representing a service.
Error lastError() const
Gets the last error.
Account * createAccount(const QString &providerName)
Creates a new account.
ServiceList serviceList(const QString &serviceType=QString()) const
Gets the service list.
ServiceType serviceType(const QString &name) const
Gets an object representing a service type.
quint32 timeout()
Gets the database timeout.
Representation of an account provider.
Provider()
Construct an invalid provider.
Representation of an account service type.
ServiceType()
Construct an invalid serviceType.
Representation of an account service.
Service()
Construct an invalid service.