Plasma::Service

Search for usage in LXR

#include <Plasma/Service>

Inheritance diagram for Plasma::Service:

Properties

QString destination
 
QString name
 
QStringList operationNames
 
- Properties inherited from QObject
 objectName
 

Signals

void operationEnabledChanged (const QString &operation, bool enabled)
 
void serviceReady (Plasma::Service *service)
 

Public Member Functions

 ~Service () override
 
Q_INVOKABLE QString destination () const
 
Q_INVOKABLE bool isOperationEnabled (const QString &operation) const
 
Q_INVOKABLE QString name () const
 
Q_INVOKABLE QVariantMap operationDescription (const QString &operationName)
 
Q_INVOKABLE QStringList operationNames () const
 
Q_INVOKABLE void setDestination (const QString &destination)
 
Q_INVOKABLE ServiceJobstartOperationCall (const QVariantMap &description, QObject *parent=nullptr)
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Protected Member Functions

 Service (QObject *parent, const QVariantList &args)
 
 Service (QObject *parent=nullptr)
 
virtual ServiceJobcreateJob (const QString &operation, QVariantMap &parameters)=0
 
virtual void registerOperationsScheme ()
 
void setName (const QString &name)
 
void setOperationEnabled (const QString &operation, bool enable)
 
void setOperationsScheme (QIODevice *xml)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from QObject
typedef QObjectList
 

Detailed Description

This class provides a generic API for write access to settings or services.

Plasma::Service allows interaction with a "destination", the definition of which depends on the Service itself. For a network settings Service this might be a profile name ("Home", "Office", "Road Warrior") while a web based Service this might be a username ("aseigo", "stranger65").

A Service provides one or more operations, each of which provides some sort of interaction with the destination. Operations are described using config XML which is used to create a KConfig object with one group per operation. The group names are used as the operation names, and the defined items in the group are the parameters available to be set when using that operation.

A service is started with a KConfigGroup (representing a ready to be serviced operation) and automatically deletes itself after completion and signaling success or failure. See KJob for more information on this part of the process.

Services may either be loaded "stand alone" from plugins, or from a DataEngine by passing in a source name to be used as the destination.

Sample use might look like:

Plasma::DataEngine *twitter = dataEngine("twitter");
Plasma::Service *service = twitter.serviceForSource("aseigo");
QVariantMap op = service->operationDescription("update");
op.insert("tweet", "Hacking on plasma!");
connect(job, SIGNAL(finished(KJob*)), this, SLOT(jobCompeted()));

Please remember, the service needs to be deleted when it will no longer be used. This can be done manually or by these (perhaps easier) alternatives:

If it is needed throughout the lifetime of the object:

service->setParent(this);

If the service will not be used after just one operation call, use:

connect(job, SIGNAL(finished(KJob*)), service, SLOT(deleteLater()));

Definition at line 77 of file service.h.

Constructor & Destructor Documentation

◆ ~Service()

Plasma::Service::~Service ( )
override

Destructor.

Definition at line 42 of file service.cpp.

◆ Service() [1/2]

Plasma::Service::Service ( QObject parent = nullptr)
explicitprotected

Default constructor.

Parameters
parentthe parent object for this service

Definition at line 29 of file service.cpp.

◆ Service() [2/2]

Plasma::Service::Service ( QObject parent,
const QVariantList &  args 
)
protected

Constructor for plugin loading.

Definition at line 35 of file service.cpp.

Member Function Documentation

◆ createJob()

virtual ServiceJob* Plasma::Service::createJob ( const QString operation,
QVariantMap &  parameters 
)
protectedpure virtual

Called when a job should be created by the Service.

Parameters
operationwhich operation to work on
parametersthe parameters set by the user for the operation
Returns
a ServiceJob that can be started and monitored by the consumer

◆ destination()

Q_INVOKABLE QString Plasma::Service::destination ( ) const
Returns
the target destination, if any, that this service is associated with

◆ isOperationEnabled()

bool Plasma::Service::isOperationEnabled ( const QString operation) const

Query to find if an operation is enabled or not.

Parameters
operationthe name of the operation to check
Returns
true if the operation is enabled, false otherwise

Definition at line 149 of file service.cpp.

◆ name()

Q_INVOKABLE QString Plasma::Service::name ( ) const

The name of this service.

◆ operationDescription()

QVariantMap Plasma::Service::operationDescription ( const QString operationName)

Retrieves the parameters for a given operation.

Parameters
operationNamethe operation to retrieve parameters for
Returns
QVariantMap containing the parameters

Definition at line 69 of file service.cpp.

◆ operationEnabledChanged

void Plasma::Service::operationEnabledChanged ( const QString operation,
bool  enabled 
)
signal

Emitted when an operation got enabled or disabled.

◆ operationNames()

Q_INVOKABLE QStringList Plasma::Service::operationNames ( ) const
Returns
the possible operations for this profile

◆ registerOperationsScheme()

void Plasma::Service::registerOperationsScheme ( )
protectedvirtual

By default this is based on the file in plasma/services/name.operations, but can be reimplemented to use a different mechanism.

It should result in a call to setOperationsScheme(QIODevice *);

Definition at line 175 of file service.cpp.

◆ serviceReady

void Plasma::Service::serviceReady ( Plasma::Service service)
signal

Emitted when this service is ready for use.

◆ setDestination()

void Plasma::Service::setDestination ( const QString destination)

Sets the destination for this Service to operate on.

Parameters
destinationspecific to each Service, this sets which target or address for ServiceJobs to operate on

Definition at line 47 of file service.cpp.

◆ setName()

void Plasma::Service::setName ( const QString name)
protected

Sets the name of the Service; useful for Services not loaded from plugins, which use the plugin name for this.

Parameters
namethe name to use for this service

Definition at line 122 of file service.cpp.

◆ setOperationEnabled()

void Plasma::Service::setOperationEnabled ( const QString operation,
bool  enable 
)
protected

Enables a given service by name.

Parameters
operationthe name of the operation to enable or disable
enabletrue if the operation should be enabled, false if disabled

Definition at line 134 of file service.cpp.

◆ setOperationsScheme()

void Plasma::Service::setOperationsScheme ( QIODevice xml)
protected

Sets the XML used to define the operation schema for this Service.

Definition at line 154 of file service.cpp.

◆ startOperationCall()

ServiceJob * Plasma::Service::startOperationCall ( const QVariantMap &  description,
QObject parent = nullptr 
)

Called to create a ServiceJob which is associated with a given operation and parameter set.

Returns
a started ServiceJob; the consumer may connect to relevant signals before returning to the event loop

Definition at line 83 of file service.cpp.


The documentation for this class was generated from the following files:
Data provider for plasmoids (Plasma plugins)
Definition: dataengine.h:50
virtual Q_INVOKABLE Service * serviceForSource(const QString &source)
Definition: dataengine.cpp:85
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void deleteLater()
This class provides jobs for use with Plasma::Service.
Definition: servicejob.h:38
Q_INVOKABLE ServiceJob * startOperationCall(const QVariantMap &description, QObject *parent=nullptr)
Called to create a ServiceJob which is associated with a given operation and parameter set.
Definition: service.cpp:83
This class provides a generic API for write access to settings or services.
Definition: service.h:77
Q_INVOKABLE QVariantMap operationDescription(const QString &operationName)
Retrieves the parameters for a given operation.
Definition: service.cpp:69
void setParent(QObject *parent)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Sep 27 2023 04:07:52 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.