[Liblas-devel] Design/architecture questions

Michael Gerlek mpg at flaxen.com
Sat Dec 4 17:37:20 EST 2010


> liblas::Reader is a thin handle giving access to the actual reader
> operating on LAS data. It does not provide any detailed logic itself,
> it's just a proxy object to which a specific reader implementation
> is attached.
>
> liblas::ReaderI is the actual definition reader interface and behaviour.
> Whatever a LAS reader is supposed to do, it should be outlined in ReaderI.

Hmm.  I don't have the code in front of me, but I think you're saying
ReaderI is an interface (no code, just declarations) and Reader has-a
ReaderI.

>From the standpoint of a user of liblas, am I to carry around a
pointer to the Reader base class?  If so, what is the difference
between Reader and ReaderI?  Seems like there are two different
hierarchies here, and I'm trying to understand why one isn't
sufficient.  Or is it that Reader and ReaderI have different intended
users/uses?

Or is it all because of the preference for the Impl model?  As a C#
programmer at heart these days I don't like the idiom personally, but
I can see how it could help in some situations for C++ systems: what
are the Impl advantages we're aiming at?

Not trying to be argumentative here, just trying to understand the way
things are, and the way forward...  Can you state in one or two
sentences the purpose for each class? (like they teach in the books,
if you can't explain the class in terms of a couple sentences its
probably too complicated?)

-mpg


More information about the Liblas-devel mailing list