summaryrefslogtreecommitdiff
path: root/fxjs/include/fxjse.h
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-07-12 10:37:52 -0700
committerCommit bot <commit-bot@chromium.org>2016-07-12 10:37:52 -0700
commit08fea801054f3afadb95d0a54efe7da6683c5c5d (patch)
treedc81937c50050c91e6f3ca483d2c0d9d1feceed0 /fxjs/include/fxjse.h
parent5a6c1398d0e559fb6a048cb0dca46ba9f9309a77 (diff)
downloadpdfium-08fea801054f3afadb95d0a54efe7da6683c5c5d.tar.xz
Rename fxjse/ to fxjs/ update files to match class names.
This Cl moves the fxjse/ directory to fxjs/ in anticipation of merging in fpdfsdk/jsapi. In the process the filenames are updated to better match the class contents. Static methods are moved to anonymous namespaces as possible. Review-Url: https://codereview.chromium.org/2136213002
Diffstat (limited to 'fxjs/include/fxjse.h')
-rw-r--r--fxjs/include/fxjse.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/fxjs/include/fxjse.h b/fxjs/include/fxjse.h
new file mode 100644
index 0000000000..79c32b053a
--- /dev/null
+++ b/fxjs/include/fxjse.h
@@ -0,0 +1,74 @@
+// 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 FXJS_INCLUDE_FXJSE_H_
+#define FXJS_INCLUDE_FXJSE_H_
+
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+#include "v8/include/v8.h"
+
+class CFXJSE_Arguments;
+class CFXJSE_Value;
+
+// C++ object which can be wrapped by CFXJSE_value.
+class CFXJSE_HostObject {
+ public:
+ virtual ~CFXJSE_HostObject() {}
+};
+
+typedef void (*FXJSE_FuncCallback)(CFXJSE_Value* pThis,
+ const CFX_ByteStringC& szFuncName,
+ CFXJSE_Arguments& args);
+typedef void (*FXJSE_PropAccessor)(CFXJSE_Value* pObject,
+ const CFX_ByteStringC& szPropName,
+ CFXJSE_Value* pValue);
+typedef int32_t (*FXJSE_PropTypeGetter)(CFXJSE_Value* pObject,
+ const CFX_ByteStringC& szPropName,
+ FX_BOOL bQueryIn);
+typedef FX_BOOL (*FXJSE_PropDeleter)(CFXJSE_Value* pObject,
+ const CFX_ByteStringC& szPropName);
+
+enum FXJSE_ClassPropTypes {
+ FXJSE_ClassPropType_None,
+ FXJSE_ClassPropType_Property,
+ FXJSE_ClassPropType_Method
+};
+
+struct FXJSE_FUNCTION_DESCRIPTOR {
+ const FX_CHAR* name;
+ FXJSE_FuncCallback callbackProc;
+};
+
+struct FXJSE_PROPERTY_DESCRIPTOR {
+ const FX_CHAR* name;
+ FXJSE_PropAccessor getProc;
+ FXJSE_PropAccessor setProc;
+};
+
+struct FXJSE_CLASS_DESCRIPTOR {
+ const FX_CHAR* name;
+ FXJSE_FuncCallback constructor;
+ const FXJSE_PROPERTY_DESCRIPTOR* properties;
+ const FXJSE_FUNCTION_DESCRIPTOR* methods;
+ int32_t propNum;
+ int32_t methNum;
+ FXJSE_PropTypeGetter dynPropTypeGetter;
+ FXJSE_PropAccessor dynPropGetter;
+ FXJSE_PropAccessor dynPropSetter;
+ FXJSE_PropDeleter dynPropDeleter;
+ FXJSE_FuncCallback dynMethodCall;
+};
+
+void FXJSE_Initialize();
+void FXJSE_Finalize();
+
+v8::Isolate* FXJSE_Runtime_Create_Own();
+void FXJSE_Runtime_Release(v8::Isolate* pIsolate);
+
+void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Message);
+
+#endif // FXJS_INCLUDE_FXJSE_H_