[Qt5-feedback] Add QtService to Qt proper
BRM
bm_witness at yahoo.com
Fri May 20 13:21:27 CEST 2011
----- Original Message ----
> From: BRM <bm_witness at yahoo.com>
> ----- Original Message ----
> > From: Thiago Macieira <thiago at kde.org>
> > On Thursday, 19 de May de 2011 08:48:29 Craig.Scott at csiro.au wrote:
> > > On 19/05/2011, at 4:42 AM, Thiago Macieira wrote:
> > > > On Wednesday, 18 de May de 2011 11:20:25 BRM wrote:
> > > >> It could also use some TLC, for example:
> > > > Who's going to give it that TLC?
> > >
> > > Well, if Nokia shows interest in adding the QtService functionality to
Qt
> > > and you ask nicely......
> > >
> > > That's one of the things this list is for, right? ;)
> >
> > Nokia has no interest in adding it. The question is whether you do, not
us.
> >
>
> I have an interest in seeing it added as I use it for 90% of my Qt-based
> applications right now. Presently I have to map in the existing QtService as a
>
> 3rd party extension, which I then instantiate a template from, and derive from
>
> that to make my own service class for how my services work. As a result, I
>have
>
> to map that code in twice - once in the static library for my service class,
>and
>
> again in the main application build (I just refer to the code for the library
>to
>
> keep down the redundancy) - which is a pain to do. It's also frustrating that
> there have been no updates to it since 4.5, and while it works with 4.6 and
>4.7
>
> it doesn't list them as supported either.
>
> So I'd certainly be interested in being a co-developer with someone on this -
> I'm not sure my employer will go for it - especially as it is very peripheral
>to
>
> our main issues at the moment, but they'd certainly benefit; and I do have
>quite
>
> a few applications I can use as a test bed of sorts - though I can't make them
>
> available for all. I suspect some KDE stuff could potentially use it too - or
>at
>
> least derive from it for someone more KDE centric - the benefit being that
> background applications for KDE on Windows would be able to be full Windows
> Services as well (e.g. kded4, klauncher - don't know just a couple quick
> examples I pulled from Process Explorer). It also wouldn't be hard to make a
>few
>
> examples either.
> > > QtService is presently only supported via an add-on to Qt. I would be
>very
>
> > > helpful to have it be part of the official Qt instead of an add-on - e.g.
>
> >it's
> > > distributed with Qt just like QtGui.
> > > It could also use some TLC, for example:
> > > - QtService is presently a set of template classes, making use of
> >Signal/slots
> > > hard. It could probably be better done using Abstract classes to define
>the
>
> > > interface.
> > > - It would be useful to schedule shutdown as opposed to having the '-t'
> >option
> > > simply terminate it; probably '-t' should be "--force-shutdown" instead.
> > > - The "Interactive Service" functionality could probably be removed given
>
> >that
> > > (i) adding GUIs to services is not adviced, and (ii) Windows no longer
> >supports
> > > it (as of Vista). Other platforms may but we probably should follow best
> > > practices and encourage developers to split the service from the GUI.
> > I very much agree with this, and given that the move to Qt5 is going to
>have
>
> >binary compatibility breaks, it would seem to be an opportune time to really
>
> >consider bringing an improved/restructured QtService class into Qt proper. I
>
> >agree with Ben's view that the current templated approach is both
>unnecessary
>
> >and a hinderance. Dispensing with the GUI support should make for a much
> >cleaner class, and as Ben pointed out, a GUI should really be split from the
>
> >service itself anyway. QtService is one of those things that I find myself
> >asking "Why isn't this part of the main Qt libraries already?". It makes
>sense
>
> >and fits nicely with the other set of classes provided by Qt. I put it at a
> >similar level as QDesktopServices, QProcess and QSharedMemory.
> > One of the trickier bits of using QtService at the moment is if you want to
>
> >support additional command-line options beyond those defined by QtService.
>This
>
> >is hard enough to do robustly that we basically don't want to do it and
>instead
>
> >work around it. Maybe the command-line handling should be done separately
>from
>
> >the QtService class and have QtService provide member functions to do the
> >equivalent instead? FWIW, we ended up implementing our own generic (and
> >extensible) command line argument processing class for some other work, so
>we
>
> >have the other half of this picture. I could understand if others would be
>less
>
> >keen to forego the bundled command-line capabilities within QtService as it
>is
>
> >currently implemented.
> I would probably suggest it be in parallel to QCoreApplication/QApplication -
>a
>
> simple QService/QDaemon/QDaemonService.
>
> I also very much agree that the command-line support needs great improvement
>as
>
> well. Though I'm not sure that can be done with the present communications
> mechanism between the controller and actual daemon - at least as it stands
>now.
>
> Not sure if continuing the 'file' controller interface is best, or whether a
> shared memory or network interface would be better - or may even a combination
>
> thereof (e.g. continue with the file interface for some basic commands, but
>then
>
> use another interface via network or shared memory to do more advanced
>things.).
>
Yes - I am volunteering to jointly develop this with someone, whether I get paid
(by my employer) to do so or not.
I will be able to test Linux Embedded, X11, and Windows platforms.
We would need someone to help out with Mac, especially given some of the
neat/weird things daemons/services do on Mac; as well as other platforms (e.g.
mobile platforms, etc.)
Thiago,
What do I need to do to help with this? Do I need to setup a project on SF.net
for the time being and then later get it accepted into Qt?
Or is there a way I can work in a Qt provided sandbox (e.g. project space
provided by Nokia/Qt)?
Thanks,
Ben
More information about the Qt5-feedback
mailing list