Wrap up res.write, res.writeStatus, res.tryEnd
This commit is contained in:
parent
810695f32c
commit
d23e83628d
@ -12,8 +12,17 @@ struct HttpResponseWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// res.onData(JS function)
|
// res.onData(JS function)
|
||||||
// res.write
|
// res.onAborted
|
||||||
// res.tryEnd
|
// res.onWritable
|
||||||
|
|
||||||
|
/* Takes string or arraybuffer, returns this */
|
||||||
|
template <bool SSL>
|
||||||
|
static void res_writeStatus(const FunctionCallbackInfo<Value> &args) {
|
||||||
|
NativeString data(args.GetIsolate(), args[0]);
|
||||||
|
getHttpResponse<SSL>(args)->writeStatus(std::string_view(data.getData(), data.getLength()));
|
||||||
|
|
||||||
|
args.GetReturnValue().Set(args.Holder());
|
||||||
|
}
|
||||||
|
|
||||||
/* Takes string or arraybuffer, returns this */
|
/* Takes string or arraybuffer, returns this */
|
||||||
template <bool SSL>
|
template <bool SSL>
|
||||||
@ -24,6 +33,30 @@ struct HttpResponseWrapper {
|
|||||||
args.GetReturnValue().Set(args.Holder());
|
args.GetReturnValue().Set(args.Holder());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Takes data and optionally totalLength, returns true for success, false for backpressure */
|
||||||
|
template <bool SSL>
|
||||||
|
static void res_tryEnd(const FunctionCallbackInfo<Value> &args) {
|
||||||
|
NativeString data(args.GetIsolate(), args[0]);
|
||||||
|
|
||||||
|
int totalSize = 0;
|
||||||
|
if (args.Length() > 1) {
|
||||||
|
totalSize = args[1]->Uint32Value();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ok = getHttpResponse<SSL>(args)->tryEnd(std::string_view(data.getData(), data.getLength()), totalSize);
|
||||||
|
|
||||||
|
args.GetReturnValue().Set(Boolean::New(isolate, ok));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Takes data, returns true for success, false for backpressure */
|
||||||
|
template <bool SSL>
|
||||||
|
static void res_write(const FunctionCallbackInfo<Value> &args) {
|
||||||
|
NativeString data(args.GetIsolate(), args[0]);
|
||||||
|
bool ok = getHttpResponse<SSL>(args)->write(std::string_view(data.getData(), data.getLength()));
|
||||||
|
|
||||||
|
args.GetReturnValue().Set(Boolean::New(isolate, ok));
|
||||||
|
}
|
||||||
|
|
||||||
/* Takes key, value. Returns this */
|
/* Takes key, value. Returns this */
|
||||||
template <bool SSL>
|
template <bool SSL>
|
||||||
static void res_writeHeader(const FunctionCallbackInfo<Value> &args) {
|
static void res_writeHeader(const FunctionCallbackInfo<Value> &args) {
|
||||||
@ -46,7 +79,10 @@ struct HttpResponseWrapper {
|
|||||||
resTemplateLocal->InstanceTemplate()->SetInternalFieldCount(1);
|
resTemplateLocal->InstanceTemplate()->SetInternalFieldCount(1);
|
||||||
|
|
||||||
/* Register our functions */
|
/* Register our functions */
|
||||||
|
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "writeStatus"), FunctionTemplate::New(isolate, res_writeStatus<SSL>));
|
||||||
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "end"), FunctionTemplate::New(isolate, res_end<SSL>));
|
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "end"), FunctionTemplate::New(isolate, res_end<SSL>));
|
||||||
|
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "tryEnd"), FunctionTemplate::New(isolate, res_tryEnd<SSL>));
|
||||||
|
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "write"), FunctionTemplate::New(isolate, res_write<SSL>));
|
||||||
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "writeHeader"), FunctionTemplate::New(isolate, res_writeHeader<SSL>));
|
resTemplateLocal->PrototypeTemplate()->Set(String::NewFromUtf8(isolate, "writeHeader"), FunctionTemplate::New(isolate, res_writeHeader<SSL>));
|
||||||
|
|
||||||
/* Create our template */
|
/* Create our template */
|
||||||
|
Loading…
Reference in New Issue
Block a user