On Sun, Dec 15, 2013 at 9:42 AM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 14 December 2013 23:06, Peter Crosthwaite > <peter.crosthwa...@xilinx.com> wrote: >> On Sat, Dec 14, 2013 at 6:26 AM, Antony Pavlov <antonynpav...@gmail.com> >> wrote: >>> What do the "< private >" and "< public >" comments exactly mean here? >> >> Private means inaccessible to everybody, including the implementation >> of class being instantiated. No one should ever dereference a private >> variable, they should be managed by QOM indirectly via casts if >> needed. Public means that at least someone can access it. Note that >> public does not declare a free-for-all. QOM class variables may be >> "public" in the sense that the class implementation may access them. >> Container devices however still can not, and they are private from >> that point of view. > > I'm not sure I find this a terribly convincing explanation. Last time > I asked this IIRC the answer was just "they need to be there for the > output of the documentation generator". > > The usual definition of 'public' vs 'private' is "what can a user of the > object rather than the implementor safely access?". That would be > actually interesting to document IMHO. (I should resurrect my patch > for marking those fields up with __private so we enforce it...) >
Yes, that means we really have three levels of access, but only tags for two. Hence the confusion over public. Regards, Peter > thanks > -- PMM >