mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-13 19:51:49 +08:00
优化http调试日志性能
This commit is contained in:
@@ -247,4 +247,16 @@ string HttpMultiFormBody::multiFormBodyPrefix(const HttpArgs &args,const string
|
||||
return std::move(body);
|
||||
}
|
||||
|
||||
HttpBufferBody::HttpBufferBody(Buffer::Ptr buffer) {
|
||||
_buffer = std::move(buffer);
|
||||
}
|
||||
|
||||
ssize_t HttpBufferBody::remainSize() {
|
||||
return _buffer ? _buffer->size() : 0;
|
||||
}
|
||||
|
||||
Buffer::Ptr HttpBufferBody::readData(size_t size) {
|
||||
return Buffer::Ptr(std::move(_buffer));
|
||||
}
|
||||
|
||||
}//namespace mediakit
|
||||
|
||||
@@ -69,7 +69,8 @@ class HttpStringBody : public HttpBody{
|
||||
public:
|
||||
typedef std::shared_ptr<HttpStringBody> Ptr;
|
||||
HttpStringBody(const string &str);
|
||||
virtual ~HttpStringBody(){}
|
||||
~HttpStringBody() override = default;
|
||||
|
||||
ssize_t remainSize() override;
|
||||
Buffer::Ptr readData(size_t size) override ;
|
||||
|
||||
@@ -78,6 +79,22 @@ private:
|
||||
mutable string _str;
|
||||
};
|
||||
|
||||
/**
|
||||
* Buffer类型的content
|
||||
*/
|
||||
class HttpBufferBody : public HttpBody{
|
||||
public:
|
||||
typedef std::shared_ptr<HttpBufferBody> Ptr;
|
||||
HttpBufferBody(Buffer::Ptr buffer);
|
||||
~HttpBufferBody() override = default;
|
||||
|
||||
ssize_t remainSize() override;
|
||||
Buffer::Ptr readData(size_t size) override;
|
||||
|
||||
private:
|
||||
Buffer::Ptr _buffer;
|
||||
};
|
||||
|
||||
/**
|
||||
* 文件类型的content
|
||||
*/
|
||||
@@ -93,7 +110,7 @@ public:
|
||||
*/
|
||||
HttpFileBody(const std::shared_ptr<FILE> &fp,size_t offset,size_t max_size);
|
||||
HttpFileBody(const string &file_path);
|
||||
~HttpFileBody(){};
|
||||
~HttpFileBody() override = default;
|
||||
|
||||
ssize_t remainSize() override ;
|
||||
Buffer::Ptr readData(size_t size) override;
|
||||
|
||||
@@ -514,6 +514,10 @@ void HttpFileManager::onAccessPath(TcpSession &sender, Parser &parser, const Htt
|
||||
|
||||
////////////////////////////////////HttpResponseInvokerImp//////////////////////////////////////
|
||||
|
||||
void HttpResponseInvokerImp::operator()(int code, const StrCaseMap &headerOut, const Buffer::Ptr &body) const {
|
||||
return operator()(code, headerOut, std::make_shared<HttpBufferBody>(body));
|
||||
}
|
||||
|
||||
void HttpResponseInvokerImp::operator()(int code, const StrCaseMap &headerOut, const HttpBody::Ptr &body) const{
|
||||
if (_lambad) {
|
||||
_lambad(code, headerOut, body);
|
||||
|
||||
@@ -31,6 +31,7 @@ public:
|
||||
HttpResponseInvokerImp(const HttpResponseInvokerLambda0 &lambda);
|
||||
HttpResponseInvokerImp(const HttpResponseInvokerLambda1 &lambda);
|
||||
|
||||
void operator()(int code, const StrCaseMap &headerOut, const Buffer::Ptr &body) const;
|
||||
void operator()(int code, const StrCaseMap &headerOut, const HttpBody::Ptr &body) const;
|
||||
void operator()(int code, const StrCaseMap &headerOut, const string &body) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user