From 5e4f290e939ded90a518ff8eab1db59930655e11 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Mon, 7 Dec 2015 13:12:49 -0800 Subject: Revert "Rename CFWL_Thread classes to ThreadImp" This reverts commit 6fa20c60c6ed551af55bfc879668eaac5c237805. Reason for revert: broke tests TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1507893002 . --- xfa/include/fwl/adapter/fwl_adapterthreadmgr.h | 19 +++++++++--- xfa/include/fwl/core/fwl_thread.h | 42 ++++++++++++++++++++------ 2 files changed, 47 insertions(+), 14 deletions(-) (limited to 'xfa/include/fwl') diff --git a/xfa/include/fwl/adapter/fwl_adapterthreadmgr.h b/xfa/include/fwl/adapter/fwl_adapterthreadmgr.h index 570e53349a..12b155db90 100644 --- a/xfa/include/fwl/adapter/fwl_adapterthreadmgr.h +++ b/xfa/include/fwl/adapter/fwl_adapterthreadmgr.h @@ -4,10 +4,11 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef FWL_ADAPTERTHREADMGR_H_ -#define FWL_ADAPTERTHREADMGR_H_ - +#ifndef _FWL_ADAPTER_THREAD_H +#define _FWL_ADAPTER_THREAD_H class IFWL_Thread; +class IFWL_AdapterMutex; +class IFWL_AdapterSemaphore; class IFWL_AdapterThreadMgr { public: @@ -21,4 +22,14 @@ class IFWL_AdapterThreadMgr { virtual FWL_ERR Stop(FWL_HTHREAD hThread, int32_t iExitCode) = 0; virtual IFWL_Thread* GetCurrentThread() = 0; }; -#endif // FWL_ADAPTERTHREADMGR_H_ +class IFWL_AdapterSemaphore { + public: + virtual ~IFWL_AdapterSemaphore() {} + static IFWL_AdapterSemaphore* Create(); + virtual FWL_ERR Destroy() = 0; + virtual FWL_ERR Wait() const = 0; + virtual FWL_ERR Post() = 0; + virtual FWL_ERR Value(FX_DWORD& val) const = 0; + virtual FWL_ERR Reset(int32_t init) = 0; +}; +#endif diff --git a/xfa/include/fwl/core/fwl_thread.h b/xfa/include/fwl/core/fwl_thread.h index f8ea2aa104..3bc5c3c289 100644 --- a/xfa/include/fwl/core/fwl_thread.h +++ b/xfa/include/fwl/core/fwl_thread.h @@ -4,25 +4,47 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef FWL_THREAD_H_ -#define FWL_THREAD_H_ - +#ifndef _FWL_THREAD_H +#define _FWL_THREAD_H class IFWL_NoteDriver; - +class IFWL_Thread; +class IFWL_NoteThread; typedef struct _FWL_HTHREAD { void* pData; } * FWL_HTHREAD; - class IFWL_Thread { public: - virtual void Release() = 0; - virtual FWL_ERR Run(FWL_HTHREAD hThread) = 0; + static IFWL_Thread* Create(); protected: virtual ~IFWL_Thread() {} -}; + public: + virtual void Release() = 0; + virtual FWL_ERR Run(FWL_HTHREAD hThread) = 0; +}; +FWL_HTHREAD FWL_StartThread(IFWL_Thread* pThread, FX_BOOL bSuspended = FALSE); +FWL_ERR FWL_ResumeThread(FWL_HTHREAD hThread); +FWL_ERR FWL_SuspendThread(FWL_HTHREAD hThread); +FWL_ERR FWL_KillThread(FWL_HTHREAD hThread, int32_t iExitCode); +FWL_ERR FWL_StopThread(FWL_HTHREAD hThread, int32_t iExitCode); +FWL_ERR FWL_Sleep(FX_DWORD dwMilliseconds); class IFWL_NoteThread : public IFWL_Thread { public: + static IFWL_NoteThread* Create(); + virtual FWL_ERR Run(FWL_HTHREAD hThread) = 0; virtual IFWL_NoteDriver* GetNoteDriver() = 0; }; - -#endif // FWL_THREAD_H_ +typedef struct _FWL_HMUTEX { void* pData; } * FWL_HMUTEX; +FWL_HMUTEX FWL_CreateMutex(); +FWL_ERR FWL_DestroyMutex(FWL_HMUTEX hMutex); +FWL_ERR FWL_LockMutex(FWL_HMUTEX hMutex); +FWL_ERR FWL_TryLockMutex(FWL_HMUTEX hMutex); +FWL_ERR FWL_UnlockMutex(FWL_HMUTEX hMutex); +FWL_ERR FWL_IsLockedMutex(FWL_HMUTEX hMutex, FX_BOOL& bLocked); +typedef struct _FWL_HSEMAPHORE { void* pData; } * FWL_HSEMAPHORE; +FWL_HSEMAPHORE FWL_CreateSemaphore(); +FWL_ERR FWL_DestroySemaphore(FWL_HSEMAPHORE hSemaphore); +FWL_ERR FWL_WaitSemaphore(FWL_HSEMAPHORE hSemaphore); +FWL_ERR FWL_PostSemaphore(FWL_HSEMAPHORE hSemaphore, int32_t down = 1); +FWL_ERR FWL_GetSemaphoreValue(FWL_HSEMAPHORE hSemaphore, int32_t& value); +FWL_ERR FWL_ResetSemaphore(FWL_HSEMAPHORE hSemaphore, int32_t init); +#endif -- cgit v1.2.3