Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2005-07-07 23:50:47


Dear all,

I'm considering some last minute name changes for the iostreams library, and
would like some feedback.

There are two issues:

1. the names of the fundamental components streambuf_facade and stream_facade
2. inconsistent header names

(Note: these changes shouldn't affect the regression tests -- unless I botch
them)

-----------------------

streambuf_facade and stream_facade:

Before I settled on "streambuf_facade" and "stream_facade," I tried five or six
other pairs of names for these templates. I finally picked the current names
because of the analogy with the iterators library.

However, the templates are not really facades -- in the GOF sense -- and I'm not
sure that the analogy with the iterators library will be very effective in
helping users understand these templates. As a result, I'm think of using the
less technical-sounding names "generic_streambuf" and "generic_stream."

What do people think?

-----------------------

inconsistent header names:

Until now I've followed the policy that a header should have the same name as
the component it contains, if it contains a single component, and a short
descriptive name if it contains several related components. For example, the
header regex_filter.hpp contains the single component regex_filter, while the
header zlib.hpp contains the component zlib_error, zlib_params, zlib_compressor
and zlib_decompressor.

This policy has resulted in a peculiar mix of names. For instance,
boost/iostreams/filter now contains:

    bzip2.hpp
    counter.hpp
    gzip.hpp
    line_filter.hpp
    newline.hpp
    one_step_filter.hpp
    regex_filter.hpp
    stdio_filter.hpp
    symmetric_filter_adapter.hpp
    test.hpp
    zlib.hpp

As you can see, some contain "_filter" and some don't, and it all depends on
whether the header contains more than one component, which can be hard to
remember.

I'm thinking of renaming the headers that are curently based on component names
so that all headers will have short, simple names. E.g.,

    bzip2.hpp
    counter.hpp
    gzip.hpp
    line.hpp
    newline.hpp
    one_step.hpp
    regex.hpp
    stdio.hpp
    symmetric.hpp
    test.hpp
    zlib.hpp

Thoughts?

Best Regards,
Jonathan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk