1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Refine typo in service.

This commit is contained in:
winlin 2019-04-28 08:21:48 +08:00
parent fbe40dc42c
commit 224d7c539f
7 changed files with 129 additions and 231 deletions

View file

@ -37,18 +37,16 @@ class ISrsReader;
class SrsHttpResponseReader;
class SrsStSocket;
/**
* wrapper for http-parser,
* provides HTTP message originted service.
*/
// A wrapper for http-parser,
// provides HTTP message originted service.
class SrsHttpParser
{
private:
http_parser_settings settings;
http_parser parser;
// the global parse buffer.
// The global parse buffer.
SrsFastStream* buffer;
// whether allow jsonp parse.
// Whether allow jsonp parse.
bool jsonp;
private:
// http parse data, reset before parse message.
@ -64,24 +62,18 @@ public:
SrsHttpParser();
virtual ~SrsHttpParser();
public:
/**
* initialize the http parser with specified type,
* one parser can only parse request or response messages.
* @param allow_jsonp whether allow jsonp parser, which indicates the method in query string.
*/
// initialize the http parser with specified type,
// one parser can only parse request or response messages.
// @param allow_jsonp whether allow jsonp parser, which indicates the method in query string.
virtual srs_error_t initialize(enum http_parser_type type, bool allow_jsonp = false);
/**
* always parse a http message,
* that is, the *ppmsg always NOT-NULL when return success.
* or error and *ppmsg must be NULL.
* @remark, if success, *ppmsg always NOT-NULL, *ppmsg always is_complete().
* @remark user must free the ppmsg if not NULL.
*/
// always parse a http message,
// that is, the *ppmsg always NOT-NULL when return success.
// or error and *ppmsg must be NULL.
// @remark, if success, *ppmsg always NOT-NULL, *ppmsg always is_complete().
// @remark user must free the ppmsg if not NULL.
virtual srs_error_t parse_message(ISrsReader* reader, ISrsHttpMessage** ppmsg);
private:
/**
* parse the HTTP message to member field: msg.
*/
// parse the HTTP message to member field: msg.
virtual srs_error_t parse_message_imp(ISrsReader* reader);
private:
static int on_message_begin(http_parser* parser);
@ -105,62 +97,41 @@ typedef std::pair<std::string, std::string> SrsHttpHeaderField;
class SrsHttpMessage : public ISrsHttpMessage
{
private:
/**
* parsed url.
*/
// The parsed url.
std::string _url;
/**
* the extension of file, for example, .flv
*/
// The extension of file, for example, .flv
std::string _ext;
/**
* parsed http header.
*/
// parsed http header.
http_parser _header;
/**
* body object, reader object.
* @remark, user can get body in string by get_body().
*/
// The body object, reader object.
// @remark, user can get body in string by get_body().
SrsHttpResponseReader* _body;
/**
* whether the body is chunked.
*/
// Whether the body is chunked.
bool chunked;
/**
* whether the body is infinite chunked.
*/
// Whether the body is infinite chunked.
bool infinite_chunked;
/**
* whether the request indicates should keep alive
* for the http connection.
*/
// Whether the request indicates should keep alive for the http connection.
bool keep_alive;
/**
* uri parser
*/
// The uri parser
SrsHttpUri* _uri;
/**
* use a buffer to read and send ts file.
*/
// Use a buffer to read and send ts file.
// TODO: FIXME: remove it.
char* _http_ts_send_buffer;
// http headers
// The http headers
std::vector<SrsHttpHeaderField> _headers;
// the query map
// The query map
std::map<std::string, std::string> _query;
// the transport connection, can be NULL.
// The transport connection, can be NULL.
SrsConnection* owner_conn;
// whether request is jsonp.
// Whether request is jsonp.
bool jsonp;
// the method in QueryString will override the HTTP method.
// The method in QueryString will override the HTTP method.
std::string jsonp_method;
public:
SrsHttpMessage(ISrsReader* io);
virtual ~SrsHttpMessage();
public:
/**
* set the original messages, then update the message.
*/
// set the original messages, then update the message.
virtual srs_error_t update(std::string url, bool allow_jsonp, http_parser* header, SrsFastStream* body, std::vector<SrsHttpHeaderField>& headers);
public:
// Get the owner connection, maybe NULL.
@ -169,91 +140,62 @@ public:
public:
virtual uint8_t method();
virtual uint16_t status_code();
/**
* method helpers.
*/
// The method helpers.
virtual std::string method_str();
virtual bool is_http_get();
virtual bool is_http_put();
virtual bool is_http_post();
virtual bool is_http_delete();
virtual bool is_http_options();
/**
* whether body is chunked encoding, for reader only.
*/
// Whether body is chunked encoding, for reader only.
virtual bool is_chunked();
/**
* whether body is infinite chunked encoding.
* @remark set by enter_infinite_chunked.
*/
// Whether body is infinite chunked encoding.
// @remark set by enter_infinite_chunked.
virtual bool is_infinite_chunked();
/**
* whether should keep the connection alive.
*/
// Whether should keep the connection alive.
virtual bool is_keep_alive();
/**
* the uri contains the host and path.
*/
// The uri contains the host and path.
virtual std::string uri();
/**
* the url maybe the path.
*/
// The url maybe the path.
virtual std::string url();
virtual std::string host();
virtual std::string path();
virtual std::string query();
virtual std::string ext();
/**
* get the RESTful matched id.
*/
// Get the RESTful matched id.
virtual int parse_rest_id(std::string pattern);
public:
virtual srs_error_t enter_infinite_chunked();
public:
/**
* read body to string.
* @remark for small http body.
*/
// Read body to string.
// @remark for small http body.
virtual srs_error_t body_read_all(std::string& body);
/**
* get the body reader, to read one by one.
* @remark when body is very large, or chunked, use this.
*/
// Get the body reader, to read one by one.
// @remark when body is very large, or chunked, use this.
virtual ISrsHttpResponseReader* body_reader();
/**
* the content length, -1 for chunked or not set.
*/
// The content length, -1 for chunked or not set.
virtual int64_t content_length();
/**
* get the param in query string,
* for instance, query is "start=100&end=200",
* then query_get("start") is "100", and query_get("end") is "200"
*/
// Get the param in query string, for instance, query is "start=100&end=200",
// then query_get("start") is "100", and query_get("end") is "200"
virtual std::string query_get(std::string key);
/**
* get the headers.
*/
// Get the headers.
virtual int request_header_count();
virtual std::string request_header_key_at(int index);
virtual std::string request_header_value_at(int index);
virtual std::string get_request_header(std::string name);
public:
/**
* convert the http message to a request.
* @remark user must free the return request.
*/
// Convert the http message to a request.
// @remark user must free the return request.
virtual SrsRequest* to_request(std::string vhost);
public:
virtual bool is_jsonp();
};
// the http chunked header size,
// The http chunked header size,
// for writev, there always one chunk to send it.
#define SRS_HTTP_HEADER_CACHE_SIZE 64
/**
* response writer use st socket
*/
// Response writer use st socket
class SrsHttpResponseWriter : public ISrsHttpResponseWriter
{
private:
@ -264,17 +206,17 @@ private:
iovec* iovss_cache;
int nb_iovss_cache;
private:
// reply header has been (logically) written
// Reply header has been (logically) written
bool header_wrote;
// status code passed to WriteHeader
// The status code passed to WriteHeader
int status;
private:
// explicitly-declared Content-Length; or -1
// The explicitly-declared Content-Length; or -1
int64_t content_length;
// number of bytes written in body
// The number of bytes written in body
int64_t written;
private:
// wroteHeader tells whether the header's been written to "the
// The wroteHeader tells whether the header's been written to "the
// wire" (or rather: w.conn.buf). this is unlike
// (*response).wroteHeader, which tells only whether it was
// logically written.
@ -291,9 +233,7 @@ public:
virtual srs_error_t send_header(char* data, int size);
};
/**
* response reader use st socket.
*/
// Response reader use st socket.
class SrsHttpResponseReader : virtual public ISrsHttpResponseReader
{
private:
@ -301,21 +241,19 @@ private:
SrsHttpMessage* owner;
SrsFastStream* buffer;
bool is_eof;
// the left bytes in chunk.
// The left bytes in chunk.
int nb_left_chunk;
// the number of bytes of current chunk.
// The number of bytes of current chunk.
int nb_chunk;
// already read total bytes.
// Already read total bytes.
int64_t nb_total_read;
public:
SrsHttpResponseReader(SrsHttpMessage* msg, ISrsReader* reader);
virtual ~SrsHttpResponseReader();
public:
/**
* initialize the response reader with buffer.
*/
// Initialize the response reader with buffer.
virtual srs_error_t initialize(SrsFastStream* buffer);
// interface ISrsHttpResponseReader
// interface ISrsHttpResponseReader
public:
virtual bool eof();
virtual srs_error_t read(char* data, int nb_data, int* nb_read);