Can IDocumentationProvider::homePage be non-const?

Andreas Pakulat apaku at gmx.de
Mon Nov 30 21:12:58 UTC 2009


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..

> 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...

Andreas

-- 
Today is the first day of the rest of the mess.




More information about the KDevelop-devel mailing list