| // Copyright 2014 The PDFium Authors | 
 | // 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 FXJS_XFA_CFXJSE_CLASS_H_ | 
 | #define FXJS_XFA_CFXJSE_CLASS_H_ | 
 |  | 
 | #include "core/fxcrt/unowned_ptr.h" | 
 | #include "fxjs/xfa/fxjse.h" | 
 | #include "v8/include/v8-forward.h" | 
 | #include "v8/include/v8-persistent-handle.h" | 
 |  | 
 | class CFXJSE_Context; | 
 | struct FXJSE_CLASS_DESCRIPTOR; | 
 |  | 
 | class CFXJSE_Class { | 
 |  public: | 
 |   static CFXJSE_Class* Create(CFXJSE_Context* pContext, | 
 |                               const FXJSE_CLASS_DESCRIPTOR* pClassDescriptor, | 
 |                               bool bIsJSGlobal); | 
 |  | 
 |   explicit CFXJSE_Class(const CFXJSE_Context* pContext); | 
 |   ~CFXJSE_Class(); | 
 |  | 
 |   bool IsName(ByteStringView name) const { return name == m_szClassName; } | 
 |   const CFXJSE_Context* GetContext() const { return m_pContext; } | 
 |   v8::Local<v8::FunctionTemplate> GetTemplate(v8::Isolate* pIsolate); | 
 |  | 
 |  protected: | 
 |   ByteString m_szClassName; | 
 |   UnownedPtr<const FXJSE_CLASS_DESCRIPTOR> m_pClassDescriptor; | 
 |   UnownedPtr<const CFXJSE_Context> const m_pContext; | 
 |   v8::Global<v8::FunctionTemplate> m_hTemplate; | 
 | }; | 
 |  | 
 | #endif  // FXJS_XFA_CFXJSE_CLASS_H_ |