Accessing dataengine from different plasmoid

Simone Gaiarin simgunz at gmail.com
Wed Feb 22 09:45:13 UTC 2012


Thank you. The problem was that I didn't run the plasmoid on the same process.

What can be the best way to store a KProcess to the dataengine?
Idea 1:
Subclass the DataContainer class and store the KProcess in that class,
like the Executable dataEngine does. When the source is requested i
use addSource().
Idea 2:
Store the Kprocess as a private member of the dataengine.

 When I ask for the Service, which is the best way to act on the KProcess?
Can I create a method to get the KProcess from the datacontainer? Or
this will break the semantic of the datacontainer, that is supposed to
just listen to signal updateRequested().

Example:

serviceForSource(const QString &source)
{
container = query(source);
pointerToProcess = container.getPointerToProcess();
return new MyService(pointerToProcess,source);
}

The service will implement the operation "start" and "stop" that let
to pause and resume the process.

2012/2/21 Aaron J. Seigo <aseigo at kde.org>:
> On Tuesday, February 21, 2012 17:16:35 Simone Gaiarin wrote:
>> I need some explanation on how dataengines work. I can't understand if
>> the dataengine is shared among plasmoids or if every plasmoid creates
>> his own dataengine that retrive info.
>
> DataEngines are shared and read-only. Services are not shared and are read-
> write.
>
>> My purpose is: I create a plasmoid, this plasmoid require a source to
>> a dataengine, this source is a pointer to a kprocess. After that I
>> create more plasmoids and they should access the same source to get
>> the pointer to the KProcess.
>
> sharing pointers via DataEngines in this way is not a great idea. DataEngines
> can be accessed remotely, for instance, and then the pointer will be
> meaningless (or worse -> cause crashes)
>
>> What I obtain when I call the dataEngine() method from a plasmoid is
>> that a new instance of a dataengine is created, so I cannot see source
>> requested by other plasmoid because the dataengines are distinct.
>
> are the plasmoids running in the same process? or are you starting them in
> different processes (e.g. plasma-desktop and plasmoidviewer)?
>
> --
> Aaron J. Seigo
> _______________________________________________
> Plasma-devel mailing list
> Plasma-devel at kde.org
> https://mail.kde.org/mailman/listinfo/plasma-devel
>


More information about the Plasma-devel mailing list