blob: b41b988d6e346975fd040a0c8cffea4fa4a32fa1 [file] [log] [blame]
// 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_