diff options
Diffstat (limited to 'source/api_wrappers/linux/CThreadWrapper.h')
-rw-r--r-- | source/api_wrappers/linux/CThreadWrapper.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/source/api_wrappers/linux/CThreadWrapper.h b/source/api_wrappers/linux/CThreadWrapper.h new file mode 100644 index 0000000..aabadcc --- /dev/null +++ b/source/api_wrappers/linux/CThreadWrapper.h @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (C) ST-Ericsson SA 2011 + * License terms: 3-clause BSD license + ******************************************************************************/ + +#ifndef _CTHREADWRAPPER_H +#define _CTHREADWRAPPER_H + +#include "CWaitableObject.h" +#include "CEventObject.h" +#include <pthread.h> + +typedef void*(*StartAddress_t)(void *); + +class CThreadWrapper : public CWaitableObject +{ +public: + CThreadWrapper(void*(* pStartAddress)(void *), void *pArgument); + ~CThreadWrapper(); + void ResumeThread(); + void SuspendThread(); + void WaitToDie(DWORD dwMilliseconds = 1000); + DWORD GetThreadId(); + DWORD Wait(DWORD dwMilliseconds = INFINITE); +private: + pthread_t m_tid; + StartAddress_t m_pStartAddress; + void *m_pArgument; + CEventObject m_ThreadEndedEvt; + +protected: + static void *ThreadFunc(void *Arg); +}; + +#endif /* _CTHREADWRAPPER_H */ + |