/*
   HARK Library
   Copyright (C) 2021 Honda Research Institute Japan Inc.
 */

#if !defined(_HARKLIB_INTERNAL_THREAD_H_INCLUDED_)
#define _HARKLIB_INTERNAL_THREAD_H_INCLUDED_ 1

#include "hark-lib/object.h"

#include <thread>

namespace hark
{
    class Thread: public object
    {
    public:
        template<class F, class... Args>
        Thread(F&& f, Args&&... args):
            _thread(std::forward<F>(f), std::forward<Args>(args)...)
        {
        }

        void join();

    private:
        std::thread _thread;
    };

}

#endif /* #if !defined(_HARKLIB_INTERNAL_THREAD_H_INCLUDED_) */

/* end of file */
