Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////// Parallel Primitives //////////////////////////////////
- /** @brief Base class for parallel data processors
- */
- class CV_EXPORTS ParallelLoopBody
- {
- public:
- virtual ~ParallelLoopBody();
- virtual void operator() (const Range& range) const = 0;
- };
- /** @brief Parallel data processor
- */
- CV_EXPORTS void parallel_for_(const Range& range, const ParallelLoopBody& body, double nstripes=-1.);
- class ParallelLoopBodyLambdaWrapper : public ParallelLoopBody
- {
- private:
- std::function<void(const Range&)> m_functor;
- public:
- ParallelLoopBodyLambdaWrapper(std::function<void(const Range&)> functor) :
- m_functor(functor)
- { }
- virtual void operator() (const cv::Range& range) const CV_OVERRIDE
- {
- m_functor(range);
- }
- };
- inline void parallel_for_(const Range& range, std::function<void(const Range&)> functor, double nstripes=-1.)
- {
- parallel_for_(range, ParallelLoopBodyLambdaWrapper(functor), nstripes);
- }
Advertisement
Add Comment
Please, Sign In to add comment