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

#if !defined(_HARKLIB_INTERNAL_MUTEX_H_INCLUDED_)
#define _HARKLIB_INTERNAL_MUTEX_H_INCLUDED_ 1

#include "hark-lib/hark-lib.h"

// #include "hark-lib/internal/lock.h"

#if defined(__cplusplus_cli)
namespace std
{
    class mutex;
}
#else
#include <mutex>
#endif

namespace hark
{
    class Mutex: public object
    {
    public:
        Mutex();

    public:
        // void lock()
        // {
        //     this->_impl->lock();
        // }

        // void unlock()
        // {
        //     this->_impl->unlock();
        // }

    public:
        std::unique_ptr<std::mutex> _impl;

    };

}

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

/* end of file */
