// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef _FWL_ADAPTER_THREAD_H #define _FWL_ADAPTER_THREAD_H class IFWL_Thread; class IFWL_AdapterMutex; class IFWL_AdapterSemaphore; class IFWL_AdapterThreadMgr { public: virtual ~IFWL_AdapterThreadMgr() {} virtual FWL_ERR Start(IFWL_Thread* pThread, FWL_HTHREAD& hThread, FX_BOOL bSuspended = FALSE) = 0; virtual FWL_ERR Resume(FWL_HTHREAD hThread) = 0; virtual FWL_ERR Suspend(FWL_HTHREAD hThread) = 0; virtual FWL_ERR Kill(FWL_HTHREAD hThread, int32_t iExitCode) = 0; virtual FWL_ERR Stop(FWL_HTHREAD hThread, int32_t iExitCode) = 0; virtual IFWL_Thread* GetCurrentThread() = 0; }; 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