Akonadi

core/agentinstance.cpp
1/*
2 SPDX-FileCopyrightText: 2008 Tobias Koenig <tokoe@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#include "agentinstance.h"
8#include "agentinstance_p.h"
9
10#include "agentmanager.h"
11#include "agentmanager_p.h"
12#include "servermanager.h"
13
14#include "akonadicore_debug.h"
15
16using namespace Akonadi;
17
19 : d(new AgentInstancePrivate)
20{
21}
22
24 : d(other.d)
25{
26}
27
29{
30}
31
32bool AgentInstance::isValid() const
33{
34 return !d->mIdentifier.isEmpty();
35}
36
38{
39 return d->mType;
40}
41
42QString AgentInstance::identifier() const
43{
44 return d->mIdentifier;
45}
46
48{
49 AgentManager::self()->d->setName(*this, name);
50}
51
52QString AgentInstance::name() const
53{
54 return d->mName;
55}
56
57AgentInstance::Status AgentInstance::status() const
58{
59 switch (d->mStatus) {
60 case 0:
61 return Idle;
62 case 1:
63 return Running;
64 case 3:
65 return NotConfigured;
66 case 2:
67 default:
68 return Broken;
69 }
70}
71
72QString AgentInstance::statusMessage() const
73{
74 return d->mStatusMessage;
75}
76
77int AgentInstance::progress() const
78{
79 return d->mProgress;
80}
81
82bool AgentInstance::isOnline() const
83{
84 return d->mIsOnline;
85}
86
88{
89 AgentManager::self()->d->setOnline(*this, online);
90}
91
92void AgentInstance::configure(qlonglong winId)
93{
94 AgentManager::self()->d->configure(*this, winId);
95}
96
98{
99 AgentManager::self()->d->synchronize(*this);
100}
101
103{
104 AgentManager::self()->d->synchronizeCollectionTree(*this);
105}
106
108{
109 AgentManager::self()->d->synchronizeTags(*this);
110}
111
113{
114 if (this != &other) {
115 d = other.d;
116 }
117
118 return *this;
119}
120
122{
123 return (d->mIdentifier == other.d->mIdentifier);
124}
125
127{
128 QDBusInterface iface(ServerManager::agentServiceName(ServerManager::Agent, identifier()),
129 QStringLiteral("/"),
130 QStringLiteral("org.freedesktop.Akonadi.Agent.Control"));
131 if (iface.isValid()) {
132 QDBusReply<void> reply = iface.call(QStringLiteral("abort"));
133 if (!reply.isValid()) {
134 qCWarning(AKONADICORE_LOG) << "Failed to place D-Bus call.";
135 }
136 } else {
137 qCWarning(AKONADICORE_LOG) << "Unable to obtain agent interface";
138 }
139}
140
142{
143 QDBusInterface iface(ServerManager::agentServiceName(ServerManager::Agent, identifier()),
144 QStringLiteral("/"),
145 QStringLiteral("org.freedesktop.Akonadi.Agent.Control"));
146 if (iface.isValid()) {
147 QDBusReply<void> reply = iface.call(QStringLiteral("reconfigure"));
148 if (!reply.isValid()) {
149 qCWarning(AKONADICORE_LOG) << "Failed to place D-Bus call.";
150 }
151 } else {
152 qCWarning(AKONADICORE_LOG) << "Unable to obtain agent interface";
153 }
154}
155
157{
158 QDBusInterface iface(ServerManager::serviceName(Akonadi::ServerManager::Control),
159 QStringLiteral("/AgentManager"),
160 QStringLiteral("org.freedesktop.Akonadi.AgentManager"));
161 if (iface.isValid()) {
162 QDBusReply<void> reply = iface.call(QStringLiteral("restartAgentInstance"), identifier());
163 if (!reply.isValid()) {
164 qCWarning(AKONADICORE_LOG) << "Failed to place D-Bus call.";
165 }
166 } else {
167 qCWarning(AKONADICORE_LOG) << "Unable to obtain control interface" << iface.lastError().message();
168 }
169}
170
172{
173 return d->mActivities;
174}
175
177{
178 AgentManager::self()->d->setActivities(*this, activities);
179}
180
182{
183 return d->mActivitiesEnabled;
184}
185
187{
188 AgentManager::self()->d->setActivitiesEnabled(*this, enabled);
189}
190
191#include "moc_agentinstance.cpp"
void restart() const
Restart the agent process.
void abortCurrentTask() const
Tell the agent to abort its current operation.
void synchronize()
Triggers the agent instance to start synchronization.
AgentInstance()
Creates a new agent instance object.
void setIsOnline(bool online)
Sets online status of the agent instance.
AgentType type() const
Returns the agent type of this instance.
QStringList activities() const
Returns a list of activities of the agent instance.
void synchronizeCollectionTree()
Triggers a synchronization of the collection tree by the given agent instance.
AgentInstance & operator=(const AgentInstance &other)
void setActivities(const QStringList &online)
Sets list of activities of the agent instance.
AKONADICORE_DEPRECATED void configure(qlonglong winId=0)
Triggers the agent instance to show its configuration dialog.
void setName(const QString &name)
Sets the user visible name of the agent instance.
~AgentInstance()
Destroys the agent instance object.
Status
Describes the status of the agent instance.
@ NotConfigured
The agent is lacking required configuration.
@ Running
The agent instance is working on something.
@ Idle
The agent instance does currently nothing.
@ Broken
The agent instance encountered an error state.
bool operator==(const AgentInstance &other) const
void synchronizeTags()
Triggers a synchronization of tags by the given agent instance.
void setActivitiesEnabled(bool enabled)
Sets activities support enabled.
void reconfigure() const
Tell the agent that its configuration has been changed remotely via D-Bus.
bool activitiesEnabled() const
Returns true if agent instance has activities support enabled.
static AgentManager * self()
Returns the global instance of the agent manager.
A representation of an agent type.
static QString agentServiceName(ServiceAgentType agentType, const QString &identifier)
Returns the namespaced D-Bus service name for an agent of type agentType with agent identifier identi...
static QString serviceName(ServiceType serviceType)
Returns the namespaced D-Bus service name for serviceType.
Helper integration between Akonadi and Qt.
QDBusMessage call(QDBus::CallMode mode, const QString &method, Args &&... args)
bool isValid() const const
QDBusError lastError() const const
QString message() const const
bool isValid() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Apr 11 2025 11:52:13 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.