@@ -70,45 +70,25 @@ static std::list<std::function<void ()>> gPendingFun;
7070static std::mutex gDispatchMutex ;
7171static const char * envValue = std::getenv(" NATIVEJS_DUMP_NETWORKMETRIC" );
7272
73- struct TimeoutInfo
73+ void TimeoutQueue::pushTimeouts ( const std::vector< TimeoutInfo*>& timerVec)
7474{
75- std::function<int ()> callback;
76- std::chrono::time_point<std::chrono::steady_clock> fireTime;
77- std::chrono::milliseconds interval;
78- bool repeat;
79- uint32_t tag;
80- bool canceled;
81- };
82-
83- struct TimeoutInfoComparator
84- {
85- constexpr bool operator ()(const TimeoutInfo *lhs, const TimeoutInfo *rhs) const {
86- return !((lhs->fireTime < rhs->fireTime ) ||
87- ((lhs->fireTime == rhs->fireTime ) && (lhs->tag < rhs->tag )));
88- }
89- };
75+ if (!timerVec.size ())
76+ return ;
77+ this ->c .reserve (this ->c .size () + timerVec.size ());
78+ this ->c .insert (this ->c .end (), timerVec.begin (), timerVec.end ());
79+ std::make_heap (this ->c .begin (), this ->c .end (), this ->comp );
80+ }
9081
91- class TimeoutQueue : public std ::priority_queue<TimeoutInfo*, std::vector< TimeoutInfo*>, TimeoutInfoComparator>
82+ bool TimeoutQueue::updateForInfo ( const TimeoutInfo* info)
9283{
93- public:
94- void pushTimeouts (const std::vector<TimeoutInfo*>& timerVec)
95- {
96- if (!timerVec.size ())
97- return ;
98- c.reserve (c.size () + timerVec.size ());
99- c.insert (c.end (),timerVec.begin (), timerVec.end ());
100- std::make_heap (c.begin (), c.end (), comp);
101- }
102- bool updateForInfo (const TimeoutInfo* info)
103- {
104- auto it = std::find (c.begin (), c.end (), info);
105- if (it != c.end ()) {
106- std::make_heap (c.begin (), c.end (), comp);
107- return true ;
84+ auto it = std::find (this ->c .begin (), this ->c .end (), info);
85+ if (it != this ->c .end ()) {
86+ std::make_heap (this ->c .begin (), this ->c .end (), this ->comp );
87+ return true ;
10888 }
10989 return false ;
110- }
111- };
90+ }
91+
11292static std::map<uint32_t , TimeoutInfo*> gTimeoutMap ;
11393static uint32_t gTimeoutIdx = 0 ;
11494static TimeoutQueue gTimeoutQueue ;
@@ -179,22 +159,17 @@ void assertIsMainThread()
179159 assert (std::this_thread::get_id () == gMainThreadId );
180160}
181161
182- class rtHttpRequestEx : public rtHttpRequest
183- {
184- public:
185- rtDeclareObject (rtHttpRequestEx, rtHttpRequest);
186-
187- rtHttpRequestEx (const rtString& url)
162+ rtHttpRequestEx::rtHttpRequestEx (const rtString& url)
188163 : rtHttpRequest(url)
189164 {
190165 }
191166
192- rtHttpRequestEx (const rtObjectRef& options)
167+ rtHttpRequestEx::rtHttpRequestEx (const rtObjectRef& options)
193168 : rtHttpRequest(options)
194169 {
195170 }
196171
197- void onDownloadProgressImpl (double progress) final
172+ void rtHttpRequestEx:: onDownloadProgressImpl (double progress)
198173 {
199174
200175 AddRef ();
@@ -209,7 +184,7 @@ class rtHttpRequestEx : public rtHttpRequest
209184 });
210185 }
211186
212- void onDownloadCompleteImpl (rtFileDownloadRequest* downloadRequest) final
187+ void rtHttpRequestEx:: onDownloadCompleteImpl (rtFileDownloadRequest* downloadRequest)
213188 {
214189 AddRef ();
215190 if (!downloadRequest->errorString ().isEmpty ()) {
@@ -275,7 +250,6 @@ class rtHttpRequestEx : public rtHttpRequest
275250 });
276251 }
277252 }
278- };
279253
280254rtDefineObject (rtHttpRequestEx, rtHttpRequest);
281255
0 commit comments