dfaure requested changes to this revision.
dfaure added inline comments.
This revision now requires changes to proceed.

INLINE COMMENTS

> klistopenfilestest.cpp:45
> +    eventLoop.exec();
> +    QVERIFY(processInfoList.empty() == false);
> +    auto testProcessIterator = std::find_if(processInfoList.begin(), 
> processInfoList.end(), [](const KProcessList::KProcessInfo& info)

QVERIFY(!processInfoList.empty())

> klistopenfilestest.cpp:52
> +    const auto& processInfo = *testProcessIterator;
> +    QVERIFY(processInfo.isValid() == true);
> +    QCOMPARE(processInfo.pid(), QCoreApplication::applicationPid());

The `== true` can be removed

(repeats)

> klistopenfiles.cpp:39
> +        KProcessList::KProcessInfoList processInfoList;
> +        for (const auto& pidStr : pidList) {
> +            qint64 pid = pidStr.toLongLong();

qAsConst(pidList) to avoid a detach

> hallas wrote in klistopenfiles.cpp:49
> What should we do for Windows? Do we support any other platforms that doesn't 
> have lsof?

This reminds me of KCoreAddons' new KProcessInfo class, although that one 
doesn't actually do this.

I see that FreeBSD and OSX have lsof (and the man page doesn't say those 
options are missing there) so it should be fine, everywhere except Windows.

In general I don't really like starting executables like this, but indeed 
writing a clone of lsof sounds like much work.

> hallas wrote in klistopenfiles.h:40
> I am very much in doubt about what a nice interface for this should be? I was 
> thinking of an alternative approach where you would instantiate a class, 
> connect to a signal on the class and then invoke a method to start the 
> listing process, you would then receive the result on a slot instead. What do 
> you guys think?

Reading the unittest, I definitely agree that a signal would be better. Then 
you could use QSignalSpy::wait() without the need to use QEventLoop by hand :-)

This is really a job. I would inherit KJob for this, actually. It's the way we 
do such things everywhere else.

REPOSITORY
  R244 KCoreAddons

REVISION DETAIL
  https://phabricator.kde.org/D21760

To: hallas, davidedmundson, broulik, #frameworks, dfaure, bruns, #plasma
Cc: kde-frameworks-devel, LeGast00n, sbergeron, michaelh, ngraham, bruns

Reply via email to