int AutoHelper::attachFd(SOCKET_FD fd, uint32_t flags) { flags_ = flags; http_parser_.setDataCallback([this] (const char* data, uint32_t len) { onHttpData(data, len); }); http_parser_.setEventCallback([this] (HttpEvent ev) { onHttpEvent(ev); }); tcp_.setReadCallback([this] (int err) { onReceive(err); }); tcp_.setErrorCallback([this] (int err) { onClose(err); }); return tcp_.attachFd(fd, flags); }
int HttpTest::attachSocket(TcpSocket&& tcp, HttpParser&& parser) { http_.setWriteCallback([this] (int err) { onSend(err); }); http_.setErrorCallback([this] (int err) { onClose(err); }); http_.setDataCallback([this] (uint8_t* data, uint32_t len) { onHttpData(data, len); }); http_.setHeaderCompleteCallback([this] () { onHeaderComplete(); }); http_.setRequestCompleteCallback([this] () { onRequestComplete(); }); http_.setResponseCompleteCallback([this] () { onResponseComplete(); }); return http_.attachSocket(std::move(tcp), std::move(parser)); }
int HttpTest::attachFd(SOCKET_FD fd, uint32_t ssl_flags) { http_.setWriteCallback([this] (int err) { onSend(err); }); http_.setErrorCallback([this] (int err) { onClose(err); }); http_.setDataCallback([this] (uint8_t* data, uint32_t len) { onHttpData(data, len); }); http_.setHeaderCompleteCallback([this] () { onHeaderComplete(); }); http_.setRequestCompleteCallback([this] () { onRequestComplete(); }); http_.setResponseCompleteCallback([this] () { onResponseComplete(); }); http_.setSslFlags(ssl_flags); return http_.attachFd(fd); }