Index: include/AdblockPlus/JsEngine.h |
diff --git a/include/AdblockPlus/JsEngine.h b/include/AdblockPlus/JsEngine.h |
index dc210bc90c7e3c5277d313ced5db75952f1b65b7..085a2647675b9693ae62f4f6c8f8b9c957b70146 100644 |
--- a/include/AdblockPlus/JsEngine.h |
+++ b/include/AdblockPlus/JsEngine.h |
@@ -20,6 +20,7 @@ |
#include <functional> |
#include <map> |
+#include <list> |
#include <stdexcept> |
#include <stdint.h> |
#include <string> |
@@ -81,7 +82,6 @@ namespace AdblockPlus |
{ |
friend class JsValue; |
friend class JsContext; |
- |
Oleksandr
2017/03/24 12:15:25
Nit: I'm sure you can guess :). Unrelated?
sergei
2017/03/24 12:34:39
Done.
|
public: |
/** |
* Event callback function. |
@@ -270,6 +270,21 @@ namespace AdblockPlus |
return isolate->Get(); |
} |
+ // Private functionality required to implement timers. |
+ struct TimerTaskInfo |
+ { |
+ ~TimerTaskInfo(); |
+ int delay; |
+ std::vector<std::unique_ptr<v8::Persistent<v8::Value>>> arguments; |
sergei
2017/03/23 17:27:13
We need std::unique_ptr here because v8::Persisten
|
+ }; |
+ typedef std::list<TimerTaskInfo> TimerTaskInfos; |
+ struct TimerTask |
+ { |
+ std::weak_ptr<JsEngine> weakJsEngine; |
+ TimerTaskInfos::const_iterator ii_taskInfo; |
Oleksandr
2017/03/24 12:15:25
Nit: It is not immediately clear to me what ii_ st
sergei
2017/03/24 12:34:39
Done.
|
+ }; |
+ TimerTask CreateTimerTask(const v8::Arguments& arguments); |
+ void CallTimerTask(TimerTaskInfos::const_iterator ii_taskInfo); |
private: |
explicit JsEngine(const ScopedV8IsolatePtr& isolate); |
@@ -287,6 +302,7 @@ namespace AdblockPlus |
std::mutex eventCallbacksMutex; |
std::mutex isConnectionAllowedMutex; |
IsConnectionAllowedCallback isConnectionAllowed; |
+ TimerTaskInfos timerTaskInfos; |
}; |
} |