proxygen
|
#include <StaticHandler.h>
Public Member Functions | |
void | onRequest (std::unique_ptr< proxygen::HTTPMessage > headers) noexceptoverride |
void | onBody (std::unique_ptr< folly::IOBuf > body) noexceptoverride |
void | onEOM () noexceptoverride |
void | onUpgrade (proxygen::UpgradeProtocol proto) noexceptoverride |
void | requestComplete () noexceptoverride |
void | onError (proxygen::ProxygenError err) noexceptoverride |
void | onEgressPaused () noexceptoverride |
void | onEgressResumed () noexceptoverride |
![]() | |
virtual void | setResponseHandler (ResponseHandler *handler) noexcept |
virtual bool | canHandleExpect () noexcept |
virtual ExMessageHandler * | getExHandler () noexcept |
virtual ResponseHandler * | getDownstream () noexcept |
virtual | ~RequestHandler () |
Private Member Functions | |
void | readFile (folly::EventBase *evb) |
bool | checkForCompletion () |
Private Attributes | |
std::unique_ptr< folly::File > | file_ |
bool | readFileScheduled_ {false} |
std::atomic< bool > | paused_ {false} |
bool | finished_ {false} |
Additional Inherited Members | |
![]() | |
ResponseHandler * | downstream_ {nullptr} |
Definition at line 22 of file StaticHandler.h.
|
private |
Definition at line 147 of file StaticHandler.cpp.
|
overridevirtualnoexcept |
Invoked when we get part of body for the request.
Implements proxygen::RequestHandler.
Definition at line 124 of file StaticHandler.cpp.
|
overridevirtualnoexcept |
Signals from HTTP layer when client queue is full or empty. If you are sending a streaming response, consider implementing these and acting accordingly. Saves your server from running out of memory.
Reimplemented from proxygen::RequestHandler.
Definition at line 103 of file StaticHandler.cpp.
|
overridevirtualnoexcept |
Reimplemented from proxygen::RequestHandler.
Definition at line 109 of file StaticHandler.cpp.
References folly::netops::bind(), folly::EventBaseManager::get(), folly::getCPUExecutor(), folly::getEventBase(), and folly::readFile().
|
overridevirtualnoexcept |
Invoked when we finish receiving the body.
Implements proxygen::RequestHandler.
Definition at line 128 of file StaticHandler.cpp.
|
overridevirtualnoexcept |
Request failed. Maybe because of read/write error on socket or client not being able to send request in time.
NOTE: Can be invoked at any time (except for before onRequest).
No more callbacks will be invoked after this. You should clean up after yourself.
Implements proxygen::RequestHandler.
Definition at line 141 of file StaticHandler.cpp.
|
overridevirtualnoexcept |
Handles requests by serving the file named in path. Only supports GET. reads happen in a CPU thread pool since read(2) is blocking. If egress pauses, file reading is also paused.
Implements proxygen::RequestHandler.
Definition at line 28 of file StaticHandler.cpp.
References folly::netops::bind(), proxygen::ResponseBuilder::body(), folly::exceptionStr(), proxygen::GET, folly::EventBaseManager::get(), folly::getCPUExecutor(), folly::getEventBase(), folly::readFile(), proxygen::ResponseBuilder::send(), proxygen::ResponseBuilder::sendWithEOM(), and proxygen::ResponseBuilder::status().
|
overridevirtualnoexcept |
Invoked when the session has been upgraded to a different protocol
Implements proxygen::RequestHandler.
Definition at line 131 of file StaticHandler.cpp.
|
private |
Definition at line 59 of file StaticHandler.cpp.
References proxygen::ResponseBuilder::body(), data, proxygen::ERROR, folly::IOBufQueue::move(), folly::gen::move, folly::IOBufQueue::postallocate(), folly::IOBufQueue::preallocate(), folly::readNoInt(), folly::EventBase::runInEventBaseThread(), proxygen::ResponseBuilder::send(), and proxygen::ResponseBuilder::sendWithEOM().
|
overridevirtualnoexcept |
Invoked when request processing has been completed and nothing more needs to be done. This may be a good place to log some stats and clean up resources. This is distinct from onEOM() because it is invoked after the response is fully sent. Once this callback has been received, downstream_
should be considered invalid.
Implements proxygen::RequestHandler.
Definition at line 135 of file StaticHandler.cpp.
|
private |
Definition at line 45 of file StaticHandler.h.
|
private |
Definition at line 48 of file StaticHandler.h.
|
private |
Definition at line 47 of file StaticHandler.h.
|
private |
Definition at line 46 of file StaticHandler.h.