Making KFileMetaData a framework
Kevin Ottens
ervin at kde.org
Tue Aug 5 21:19:16 UTC 2014
Hello,
On Tuesday 05 August 2014 18:36:24 Vishesh Handa wrote:
> I would appreciate it if everyone could review the code once before it gets
> into frameworks.
metainfo.yaml should have "release: false" until it's part of a KF release.
Also it should be integration and not functional (relies on plugins).
The "test" folder should be named "tests" (see directory structure policy).
Public headers should use <> style include. Also it seems you're not following
the k convention but the namespace convention for your classes, then the
includes in public headers should be namespaced as well (e.g.
<kfilemetadata/foo.h>).
I'm not sure why ExtractorPluginManager is exported. A function in a namespace
would be enough, there's no point in instantiating a manager by hand from the
client code perspective, at best looks like leaking an implementation detail.
Similarly the ExtractorPlugin naming is odd in the public API as it states it
is necessarily a plugin (implementation detail). I'd rename it
ExtractorInterface, I'd drop the suffix altogether or I'd keep ExtractorPlugin
for plugin implementors while they'd be wrapped in Extractor instances on the
client code side (I think that's actually my favorite solution).
AFAICT there's no reason for ExtractorPlugin to inherit from QObject at that
point. Same thing for ExtractorPluginManager.
Creating by hand the ExtractionResult, then passing it by pointer to the
extract method looks odd. I'd expect calling extract() with a bunch of
parameters and getting a result back (another reason for wrapping plugins on
the client side).
The whole API is synchronous which we probably don't want. It'd be better to
have an async API (much better to build up sync on top of async than the
contrary).
What about the thread safety? At a glance I would say ExtractorPluginManager
is not
That's about it after a quick glance while tired. Keep us posted for a second
round.
Regards.
--
Kévin Ottens, http://ervin.ipsquad.net
KDAB - proud supporter of KDE, http://www.kdab.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140805/ea48d8ca/attachment.sig>
More information about the Kde-frameworks-devel
mailing list