Boost logo

Boost Users :

Subject: [Boost-users] seekable input filter definition
From: Cherotek Music (cherotek_at_[hidden])
Date: 2016-04-07 10:42:28

Hey, I'm new to boost and need a seekable input filter that will operate on
bytes read from an ifstream. This is what I currently have:

struct my_filter : boost::iostreams::seekable_filter{
    template<typename Source>
    int get(Source& src)
        int byte = boost::iostreams::get(src);
        if(byte != EOF && byte != boost::iostreams::WOULD_BLOCK)
            // Do something with byte
        return byte;

    template<typename Sink>
    bool put(Sink&, char)
        // No need to actually implement put because this filter is
only used with ifstream
        return true;

    template<typename T>
    std::streampos seek(T& t, boost::iostreams::stream_offset off,
std::ios_base::seekdir way, std::ios_base::openmode which =
std::ios_base::in | std::ios_base::out)
        return boost::iostreams::seek(t, off, way, which);

It works but I would like to get rid of the useless put method. The boost
documentation here
there is an InputSeekableFilter refinement of Filter but I can't seem to
understand how to use it (there are no input_seekable_filter_tag or
input_seekable_filter structs that I could use).


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at