FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
nan/test/cpp/asyncprogressworkersignal.cpp at main · nodejs/nan · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
nodejs
/
nan
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
529
Star
3.4k
Code
Issues
57
Pull requests
15
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
nan
/
test
/
cpp
/
asyncprogressworkersignal.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
65 lines (53 loc) · 1.71 KB
Breadcrumbs
nan
/
test
/
cpp
/
asyncprogressworkersignal.cpp
Copy path
File metadata and controls
65 lines (53 loc) · 1.71 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
********************************************************************
* NAN - Native Abstractions for Node.js
*
* Copyright (c) 2018 NAN contributors
*
* MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
*******************************************************************
*/
#
include
<
nan.h
>
#
include
"
sleep.h
"
//
NOLINT(build/include_subdir)
using
namespace
Nan
;
//
NOLINT(build/namespaces)
class
ProgressWorker
:
public
AsyncProgressWorker
{
public:
ProgressWorker
(
Callback *callback
, Callback *progress
,
int
milliseconds
,
int
iters)
: AsyncProgressWorker(callback), progress(progress)
, milliseconds(milliseconds), iters(iters) {}
~ProgressWorker
() {
delete
progress;
}
void
Execute
(
const
AsyncProgressWorker::ExecutionProgress& progress) {
for
(
int
i =
0
; i < iters; ++i) {
progress.
Signal
();
Sleep
(milliseconds);
}
}
void
HandleProgressCallback
(
const
char
*data,
size_t
count) {
HandleScope scope;
v8::Local<v8::Value> arg = New<v8::Boolean>(data ==
NULL
&& count ==
0
);
progress->
Call
(
1
, &arg, async_resource);
}
private:
Callback *progress;
int
milliseconds;
int
iters;
};
NAN_METHOD
(DoProgress) {
Callback *progress =
new
Callback
(To<v8::Function>(info[
2
]).
ToLocalChecked
());
Callback *callback =
new
Callback
(To<v8::Function>(info[
3
]).
ToLocalChecked
());
AsyncQueueWorker
(
new
ProgressWorker
(
callback
, progress
, To<
uint32_t
>(info[
0
]).
FromJust
()
, To<
uint32_t
>(info[
1
]).
FromJust
()));
}
NAN_MODULE_INIT
(Init) {
Set
(target
, New<v8::String>(
"
a
"
).
ToLocalChecked
()
,
GetFunction
(New<v8::FunctionTemplate>(DoProgress)).
ToLocalChecked
());
}
NODE_MODULE
(asyncprogressworkersignal, Init)
Back
|
FazBrowse Home
|
New Git URL