| // 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 XFA_FWL_CORE_IFWL_THREAD_H_ |
| #define XFA_FWL_CORE_IFWL_THREAD_H_ |
| |
| // The FWL thread/app code contains three parallel inheritance hierarchies, |
| // which reference each other via pointers as follows: |
| // |
| // m_pImpl |
| // (nonesuch) IFWL_Thread ----------> CFWL_ThreadImp |
| // | <---------- | |
| // A m_pIface A |
| // m_pIface | | |
| // CXFA_FFApp ------------> IFWL_App CFWL_AppImp |
| // |
| |
| #include "xfa/fwl/core/fwl_error.h" |
| |
| class CFWL_ThreadImp; |
| class IFWL_NoteDriver; |
| |
| class IFWL_Thread { |
| public: |
| // These call into polymorphic methods in the impl; no need to override. |
| void Release(); |
| |
| CFWL_ThreadImp* GetImpl() const { return m_pImpl; } |
| void SetImpl(CFWL_ThreadImp* pImpl) { m_pImpl = pImpl; } |
| |
| IFWL_NoteDriver* GetNoteDriver() const; |
| |
| protected: |
| virtual ~IFWL_Thread() {} |
| |
| private: |
| CFWL_ThreadImp* m_pImpl; |
| }; |
| |
| #endif // XFA_FWL_CORE_IFWL_THREAD_H_ |