summaryrefslogtreecommitdiff
path: root/xfa/src/fxjse/src/runtime.h
blob: a51dc8f3ebbed282d73e2cf01dca92663b47806e (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
{
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::Global<v8::FunctionTemplate>	m_hRootContextGlobalTemplate;
    v8::Global<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:
    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