21 #ifndef __mia_fifofilter_hh 22 #define __mia_fifofilter_hh 27 #include <boost/call_traits.hpp> 30 #ifndef EXPORT_HANDLER 32 #define EXPORT_HANDLER __declspec(dllimport) 34 #define EXPORT_HANDLER 56 typedef std::shared_ptr<TFifoFilter >
Pointer;
66 TFifoFilter(
size_t width,
size_t min_fill,
size_t read_start);
72 void push(typename ::boost::call_traits<T>::param_type x);
82 void append_filter(Pointer last);
85 size_t get_pos()
const;
88 size_t get_buffer_size()
const;
91 size_t get_start()
const;
94 size_t get_end()
const;
104 virtual void do_initialize(typename ::boost::call_traits<T>::param_type x);
111 virtual void do_push(typename ::boost::call_traits<T>::param_type x) = 0;
117 virtual T do_filter();
122 virtual void post_finalize();
128 virtual void shift_buffer();
135 virtual void evaluate(
size_t slice);
142 size_t m_start_slice;
156 template <
typename T>
163 typedef std::shared_ptr< TFifoFilterSink<T> >
Pointer;
173 const result_type& result();
175 virtual void do_push(typename ::boost::call_traits<T>::param_type x);
177 result_type m_result;
190 template <
typename T>
191 struct __copy_create_ptr {
192 static std::shared_ptr<T > apply (typename ::boost::call_traits<T>::param_type x){
193 return std::shared_ptr<T >(
new T(x));
std::shared_ptr< TFifoFilter > Pointer
smart pointer representing this class
std::shared_ptr< TFifoFilterSink< T > > Pointer
smart pointer representing this class
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
std::vector< T > result_type
The result of the processing.
Helper class for testing FIFO filter chains.
Generic base class for out-of-core FIFO filters.
#define NS_MIA_END
conveniance define to end the mia namespace