Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Stream
- {
- public:
- Stream();
- [...]
- StreamIterator iter()
- {
- return StreamIterator(this);
- }
- private:
- class impl;
- std::unique_ptr<impl> pimpl;
- };
- class StreamFilter
- {
- public:
- StreamFilter();
- [...]
- private:
- class impl;
- std::shared_ptr<impl> pimpl;
- };
- class StreamIterator
- {
- public:
- StreamIterator(Stream* streamToFilter);
- [...]
- void addFilter(StreamFilter* filter);
- void removeFilter(StreamFilter* filter);
- [...]
- private:
- class impl;
- std::unique_ptr<impl> pimpl;
- };
- StreamIterator iter = stream.iter();
- iter.addFilter(new FilterByOffset([...with parameters...]));
- for (auto item : iter)
- {
- [...doing something with filtered items...]
- }
- class StreamIterator
- {
- public:
- StreamIterator(Stream* streamToFilter);
- [...]
- iterator begin();
- iterator end();
- const_iterator cbegin();
- const_iterator cend();
- [...]
- void addFilter(StreamFilter* filter);
- void removeFilter(StreamFilter* filter);
- [...]
- private:
- class impl;
- std::unique_ptr<impl> pimpl;
- };
Add Comment
Please, Sign In to add comment