summaryrefslogtreecommitdiff
path: root/source/api_wrappers/linux/CThreadWrapper.h
diff options
context:
space:
mode:
authorViktor Mladenovski <viktor.mladenovski@stericsson.com>2011-05-20 14:10:59 +0200
committerViktor Mladenovski <viktor.mladenovski@stericsson.com>2011-05-20 14:10:59 +0200
commitf7e95217e936da34d7124aaced590692eb515923 (patch)
tree2d9ef4750a67d9d1dd3fe9180a4fef2929fad54b /source/api_wrappers/linux/CThreadWrapper.h
Initial contribution of loader_communication
ST-Ericsson ID: 326913 ST-Ericsson FOSS-OUT ID: STETL-FOSS-OUT-10204 Change-Id: I171cfc2ee458a8a0a91a1916137d131f0f7ecee5
Diffstat (limited to 'source/api_wrappers/linux/CThreadWrapper.h')
-rw-r--r--source/api_wrappers/linux/CThreadWrapper.h36
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 */
+