Qore HttpServerUtil Module Reference  0.3.11.2
 All Classes Namespaces Functions Variables Groups Pages
HttpServer::AbstractUrlHandler Class Reference

abstract class for HTTP request handlers anchored at a specific URL More...

Inheritance diagram for HttpServer::AbstractUrlHandler:

Public Member Functions

 constructor (string n_url_root, *AbstractAuthenticator auth)
 creates the object based on the URL root and optional authenticator More...
 
string getRelativePath (string path)
 returns the relative path anchored from the url_root if possible; URI query arguments are stripped off, if the url_root cannot be matched then the path is returned with URI query arguments removed
 
- Public Member Functions inherited from HttpServer::AbstractHttpRequestHandler
private nothing checkPersistent (hash cx, hash hdr)
 this method will throw an exception if a persistent connection cannot be granted
 
 constructor (*AbstractAuthenticator n_auth, softbool n_stream=False)
 create the object optionally with the given AbstractAuthenticator More...
 
*data getMessageBody (Socket s, hash hdr, *data body, bool decode=True)
 optionally retrieves and post-processes any message body
 
private AbstractStreamRequest getStreamRequestImpl (HttpListenerInterface listener, Socket s, hash cx, hash hdr, *data body)
 returns the AbstractStreamRequest object for handling chunked requests
 
hash handleRequest (hash cx, hash hdr, *data body)
 will be called when a request is received that should be directed to the handler More...
 
hash handleRequest (HttpListenerInterface listener, Socket s, hash cx, hash hdr, *data body)
 top-level request handling method
 
bool isPersistent ()
 returns True if the current connection is persistent, False if not
 
 notifyClosed (*code c)
 calls the argument when the persistent connection is closed
 
nothing persistentClosed ()
 called externally when a persistent connection is closed
 
 restoreThreadLocalData (*hash data)
 called after handleRequest() with any data returned from saveThreadData() More...
 
*hash saveThreadLocalData ()
 called before handleRequest() any data returned here will be given to restoreThreadLocalData() after the handleRequest() call More...
 
 setPersistent (bool p=True)
 called externally to notify the handler that the connection will be persistent
 

Public Attributes

string url_root
 root part of URL for matching requests
 
- Public Attributes inherited from HttpServer::AbstractHttpRequestHandler
*AbstractAuthenticator auth
 the optional AbstractAuthenticator for requests to this handler
 
bool decompress = True
 if POSTed data should be decompressed automatically if there is content-encoding
 
bool decompress_to_string = True
 if automatically decompressed POSTed data should be converted to a string (if False, then it will be decompressed to a binary)
 
const NotificationThreadKey = "_AHRH_pc"
 thread-local key string for notification callbacks
 
const PersistenceThreadKey = "_AHRH_p"
 thread-local key string for the persistent flag
 
bool stream
 if the handler supports streaming requests/responses with chunked data
 
timeout timeout_ms = HttpServer::DefaultTimeout
 send and receive socket timeout in milliseconds
 

Additional Inherited Members

- Static Public Member Functions inherited from HttpServer::AbstractHttpRequestHandler
static data decodeBody (string ce, binary body, *string enc)
 decodes a message body with content-encoding
 
static binary encodeBody (string ce, data body)
 encodes a message body with content-encoding
 
static *string getLogMessage (hash cx, hash api, reference params, *reference args)
 helper method for handling log messages More...
 
static hash make400 (string fmt)
 creates a hash for an HTTP 400 error response with the response message body as a string
 
static hash make400 (hash hdr, string fmt)
 creates a hash for an HTTP 400 error response with the response message body as a string
 
static hash make501 (string fmt)
 creates a hash for an HTTP 501 error response with the response message body as a string
 
static hash make501 (hash hdr, string fmt)
 creates a hash for an HTTP 501 error response with the response message body as a string
 
static hash makeResponse (int code, string fmt)
 creates a hash for an HTTP response with the response code and the response message body as a formatted string
 
static hash makeResponse (hash hdr, int code, string fmt)
 creates a hash for an HTTP response with the response code and the response message body as a formatted string
 
static hash makeResponse (int code, *data body, *hash hdr)
 creates a hash for an HTTP response with the response code and a literal response message body
 
static hash redirect (hash cx, hash hdr, string path)
 generates a redirect hash for the given path
 
static staticNotificationCleanup ()
 removes the thread-local data key in case the object is destroyed in another thread
 
static staticPersistenceCleanup ()
 removes the thread-local data key in case the object is destroyed in another thread
 

Detailed Description

abstract class for HTTP request handlers anchored at a specific URL

Member Function Documentation

HttpServer::AbstractUrlHandler::constructor ( string  n_url_root,
*AbstractAuthenticator  auth 
)

creates the object based on the URL root and optional authenticator

Parameters
n_url_rootthe root part of the URL path without the leading "/"
auththe authentication object to use to authenticate connections (see AbstractAuthenticator); if no AbstractAuthenticator object is passed, then by default no authentication will be required