summaryrefslogtreecommitdiff
path: root/xfa/src/fxjse/src/runtime.h
blob: 78e891bfe4737c946078ea4ac3a358e619b76279 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 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 FXJSE_RUNTIME_H_
#define FXJSE_RUNTIME_H_
class CFXJSE_RuntimeList;
class CFXJSE_RuntimeData : public CFX_Object
{
protected:
    CFXJSE_RuntimeData(v8::Isolate* pIsolate) : m_pIsolate(pIsolate) {};
public:
    static CFXJSE_RuntimeData* Create(v8::Isolate* pIsolate);
    static CFXJSE_RuntimeData* Get(v8::Isolate* pIsolate);
public:
    v8::Isolate*							m_pIsolate;
    v8::Persistent<v8::FunctionTemplate>	m_hRootContextGlobalTemplate;
    v8::Persistent<v8::Context>				m_hRootContext;
public:
    static CFXJSE_RuntimeList*	g_RuntimeList;
protected:
    CFXJSE_RuntimeData();
    CFXJSE_RuntimeData(const CFXJSE_RuntimeData&);
    CFXJSE_RuntimeData& operator = (const CFXJSE_RuntimeData&);
};
class CFXJSE_RuntimeList : public CFX_Object
{
public:
    typedef void (*RuntimeDisposeCallback)(v8::Isolate*);
public:
    void AppendRuntime(v8::Isolate* pIsolate);
    void RemoveRuntime(v8::Isolate* pIsolate, RuntimeDisposeCallback lpfnDisposeCallback);
    void RemoveAllRuntimes(RuntimeDisposeCallback lpfnDisposeCallback);
protected:
    CFX_ArrayTemplate<v8::Isolate*> m_RuntimeList;
};
#endif