Can IDocumentationProvider::homePage be non-const?

Milian Wolff mail at milianw.de
Mon Nov 30 21:54:19 UTC 2009


On Monday 30 November 2009 22:12:58 Andreas Pakulat wrote:
> On 30.11.09 18:53:51, Milian Wolff wrote:
> > On Monday, 30. November 2009 18:28:26 Andreas Pakulat wrote:
> > > On 30.11.09 17:14:23, Milian Wolff wrote:
> > > > Hey all, esp. Apol:
> > > >
> > > > Can I remove the "const" from IDocumentationProvider::homePage() ?
> > > > Thing is, that I want to pass "this" as parent/provider to the
> > > > returned IDocumentation. This fails, since this is const, but it
> > > > should be non-const.
> > >
> > > I strongly object to that. A getter like homePage ought to be const,
> > > else its suggesting to do something other than fetching some data.
> > >
> > > As David said, either use const-cast, or maybe you should fix the rest
> > > of the calling chain to also be const.
> >
> > Hm, ok but than I'd say other places have to become const as well:
> >
> > Provider:
> > - documentationForIndex (same problem with parent as above)
> > - documentationForDeclaration (again, same)
> > - indexModel (this one definitely, will change it asap)
> 
> See below
> 
> > - jumpedTo (since it only emits addHistory with a IDocumentation ptr)
> 
> This one sounds more like a signal thats being emitted, IMHO its a bad
> name for anything else than that..

It takes just an KUrl and emits addHistory(KSharedPtr<IDocumentation>), so 
it's more than a simple signal (but very close to it).

> > Documentation:
> > - provider() should return a const KDevelop::IDocumentationProvider*
> >
> > Should I do that? Imo having it all const I'd have no problems
> > what-so-ever and wouldn't require any const-casts. The provider stays the
> > same, the DocumentationController is the one that changes.
> 
> Without any look at the api that makes sense to me from purely the
> function names. Of course you might start on a snowball here if the
> implementations for those functions also need some kind of non-const
> object...

I'll have a look at it, and if it works out I'll change it accordingly.

-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- 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/kdevelop-devel/attachments/20091130/7c7db749/attachment.sig>


More information about the KDevelop-devel mailing list