summaryrefslogtreecommitdiff
path: root/fpdfsdk/javascript/global_timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/javascript/global_timer.h')
-rw-r--r--fpdfsdk/javascript/global_timer.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/fpdfsdk/javascript/global_timer.h b/fpdfsdk/javascript/global_timer.h
new file mode 100644
index 0000000000..bc65b976a9
--- /dev/null
+++ b/fpdfsdk/javascript/global_timer.h
@@ -0,0 +1,50 @@
+// Copyright 2017 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 FPDFSDK_JAVASCRIPT_GLOBAL_TIMER_H_
+#define FPDFSDK_JAVASCRIPT_GLOBAL_TIMER_H_
+
+#include <map>
+
+#include "fpdfsdk/javascript/cjs_app.h"
+
+class GlobalTimer {
+ public:
+ GlobalTimer(app* pObj,
+ CPDFSDK_FormFillEnvironment* pFormFillEnv,
+ CJS_Runtime* pRuntime,
+ int nType,
+ const WideString& script,
+ uint32_t dwElapse,
+ uint32_t dwTimeOut);
+ ~GlobalTimer();
+
+ static void Trigger(int nTimerID);
+ static void Cancel(int nTimerID);
+
+ bool IsOneShot() const { return m_nType == 1; }
+ uint32_t GetTimeOut() const { return m_dwTimeOut; }
+ int GetTimerID() const { return m_nTimerID; }
+ CJS_Runtime* GetRuntime() const { return m_pRuntime.Get(); }
+ WideString GetJScript() const { return m_swJScript; }
+
+ private:
+ using TimerMap = std::map<uint32_t, GlobalTimer*>;
+ static TimerMap* GetGlobalTimerMap();
+
+ uint32_t m_nTimerID;
+ app* const m_pEmbedObj;
+ bool m_bProcessing;
+
+ // data
+ const int m_nType; // 0:Interval; 1:TimeOut
+ const uint32_t m_dwTimeOut;
+ const WideString m_swJScript;
+ CJS_Runtime::ObservedPtr m_pRuntime;
+ CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv;
+};
+
+#endif // FPDFSDK_JAVASCRIPT_GLOBAL_TIMER_H_