From 86daa41a9087007ca507f956ed1dfc47efce9fed Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Thu, 12 Nov 2009 05:10:07 -0500 Subject: Added a collect_posts handler --- src/filters.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src') diff --git a/src/filters.h b/src/filters.h index cc3729ea..80bbe5b4 100644 --- a/src/filters.h +++ b/src/filters.h @@ -61,6 +61,35 @@ public: virtual void operator()(post_t&) {} }; +class collect_posts : public item_handler +{ +public: + std::vector posts; + + collect_posts() : item_handler() { + TRACE_CTOR(collect_posts, ""); + } + virtual ~collect_posts() { + TRACE_DTOR(collect_posts); + } + + std::size_t length() const { + return posts.size(); + } + + std::vector::iterator begin() { + return posts.begin(); + } + std::vector::iterator end() { + return posts.end(); + } + + virtual void flush() {} + virtual void operator()(post_t& post) { + posts.push_back(&post); + } +}; + class posts_iterator; class pass_down_posts : public item_handler -- cgit v1.2.3