Steinar, you use accessor rather than public data members because you
may need to change the behaviour of the class to do something when you
set a member variable. If you have all your data public, you can’t do
this. If you force people to go via a function, you can make changes to
the class without affecting its users. You have a similar issue with
inherited classes.

Having just mistakenly performed a large upgrade including powerdns, I’m
wondering if there isn’t something we can do to minimise the amount of
time we stop a service between pre-inst and post-inst. Could we have
something like a post-unpack maintainer script or a flag telling dpkg
that the package contains a daemon and to minimise the time between the
maintainer scripts where possible.

Yes I should read the list archives, but I’m about to go
out. Must remember to check when I get back.

Edit: Adeodato Simó pointed
out that in most cases daemons should just do a restart in the postinst,
unless changing files on disk is a problem. Need to investigate if this
is an issue for pdns-server and fix it.