diff --git a/Thread.cpp b/Thread.cpp new file mode 100644 index 0000000..ef76ab8 --- /dev/null +++ b/Thread.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2021 by Geoffrey Merck F4FXL / KC3FRA + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include "Thread.h" + +using namespace std; + +CThread::CThread() +{ + +} + +void CThread::Create() +{ + //Actually does nothing, might be removed in the future +} + +void CThread::Run() +{ + m_thread = thread(CThread::EntryRunner, this); +} + +void CThread::Sleep(unsigned long millis) +{ + this_thread::sleep_for(chrono::milliseconds(millis)); +} + +void CThread::Wait() +{ + m_thread.join(); +} + +void CThread::EntryRunner(CThread * thread) +{ + thread->Entry(); +} \ No newline at end of file diff --git a/Thread.h b/Thread.h new file mode 100644 index 0000000..3da7b18 --- /dev/null +++ b/Thread.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2021 by Geoffrey Merck F4FXL / KC3FRA + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* + * A simple class to losely mimic wxthread + */ +#ifndef Thread_H +#define Thread_H + +#include + +class CThread { +public: + CThread(); + void Create(); + void Run(); + void Wait(); + void Sleep(unsigned long milli); + +protected: + virtual void* Entry(); + +private: + static void EntryRunner(CThread * thread); + + std::thread m_thread; +}; + +#endif \ No newline at end of file