[Nepomuk] Re: SimpleResource rcgen redesign draft

Christian Mollekopf chrigi_1 at fastmail.fm
Mon Jul 25 19:52:48 CEST 2011


On Mon, 25 Jul 2011 18:30:05 +0200, Sebastian Trüg <trueg at kde.org> wrote:

> Now that the SimpleResource rcgen is in git master[1] some people used
> it (mostly for Akonadi feeders and the web extractor framework) and
> found it to be a bit strange.
>
> This is true. Current usage is as follows:
>
> SimpleResource r;
> NCO::PersonContact(&r).setFullname("foobar");
>
> The reason for this is simple: due to multi-inheritance problems I
> cannot derive the generated classes from SimpleResource. Thus, we need
> wrappers.
>
> Now some ideas were floating around and I would like to settle on one
> better solution.
>
> One idea would be to have a hybrid thing where you could do this:
>
>   NCO::PersonContact pc;
>   pc.setFullname("foobar");
>   SimpleResource r = rc.resource();
>
> and this:
>
>   SimpleResource r;
>   NCO::PersonContact pc(r);
>   pc.setFullname("foobar");
>   r = pc.resource();
>
> (The last line would be required since all SimpleResources would be  
> copies.)

Why can't you just take the reference to r, and the last copy wouldn't be  
needed?
Of course the accessor is still needed for the NCO::PersonContact pc;  
usecase.

>
> We could go on like so:
>
>   r.addProperty(...);
>   pc = r;
>   pc.setResource(r);
>
> The only disadvantage I see here might be a slight performance overhead
> due to the copying of the resources.
>
> Opinions?

Additionally it might be nice to have an accessor to the uri of the  
SimpleResource directly in the wrapper,
and the << operator for the graph.

So we would go from this:

   Nepomuk::SimpleResource iconRes;
   Nepomuk::NAO::FreeDesktopIcon icon(&iconRes);
   icon.setIconNames( QStringList() << iconName );
   graph << iconRes;
   res.setProperty( Soprano::Vocabulary::NAO::prefSymbol(), iconRes.uri() );

to this:

   Nepomuk::NAO::FreeDesktopIcon icon;
   icon.setIconNames( QStringList() << iconName );
   graph << icon;
   res.setProperty( Soprano::Vocabulary::NAO::prefSymbol(), icon.uri() );

Cheers,

Christian

>
> Cheers,
> Sebastian
>
> [1]
> http://quickgit.kde.org/?p=kde-runtime.git&a=blob&h=304db56a9aff5523a5672415550c49d4b7269c3c&hb=344806a2e378f3421399cad39a63f14a4428308b&f=nepomuk/services/storage/lib/nepomuk-simpleresource-rcgen.py
> _______________________________________________
> Nepomuk mailing list
> Nepomuk at kde.org
> https://mail.kde.org/mailman/listinfo/nepomuk


More information about the Nepomuk mailing list