File size: 1,403 Bytes
7fc5a59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef OPENPOSE_THREAD_THREAD_NO_QUEUE_HPP
#define OPENPOSE_THREAD_THREAD_NO_QUEUE_HPP

#include <openpose/core/common.hpp>
#include <openpose/thread/thread.hpp>
#include <openpose/thread/worker.hpp>

namespace op
{
    template<typename TDatums, typename TWorker = std::shared_ptr<Worker<TDatums>>>
    class SubThreadNoQueue : public SubThread<TDatums, TWorker>
    {
    public:
        explicit SubThreadNoQueue(const std::vector<TWorker>& tWorkers);

        virtual ~SubThreadNoQueue();

        bool work();

        DELETE_COPY(SubThreadNoQueue);
    };
}





// Implementation
namespace op
{
    template<typename TDatums, typename TWorker>
    SubThreadNoQueue<TDatums, TWorker>::SubThreadNoQueue(const std::vector<TWorker>& tWorkers) :
        SubThread<TDatums, TWorker>{tWorkers}
    {
    }

    template<typename TDatums, typename TWorker>
    SubThreadNoQueue<TDatums, TWorker>::~SubThreadNoQueue()
    {
    }

    template<typename TDatums, typename TWorker>
    bool SubThreadNoQueue<TDatums, TWorker>::work()
    {
        try
        {
            TDatums tDatums;
            return this->workTWorkers(tDatums, true);
        }
        catch (const std::exception& e)
        {
            error(e.what(), __LINE__, __FUNCTION__, __FILE__);
            return false;
        }
    }

    COMPILE_TEMPLATE_DATUM(SubThreadNoQueue);
}

#endif // OPENPOSE_THREAD_THREAD_NO_QUEUE_HPP