mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
ESP8266WebServer: reduce amount of string copying
This commit is contained in:
parent
b029e78a67
commit
e5fcdbd9e3
@ -115,7 +115,7 @@ void ESP8266WebServer::handleClient()
|
|||||||
_handleRequest();
|
_handleRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESP8266WebServer::sendHeader(String name, String value, bool first) {
|
void ESP8266WebServer::sendHeader(const String& name, const String& value, bool first) {
|
||||||
String headerLine = name;
|
String headerLine = name;
|
||||||
headerLine += ": ";
|
headerLine += ": ";
|
||||||
headerLine += value;
|
headerLine += value;
|
||||||
@ -129,7 +129,7 @@ void ESP8266WebServer::sendHeader(String name, String value, bool first) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESP8266WebServer::send(int code, const char* content_type, String content) {
|
void ESP8266WebServer::send(int code, const char* content_type, const String& content) {
|
||||||
String response = "HTTP/1.1 ";
|
String response = "HTTP/1.1 ";
|
||||||
response += String(code);
|
response += String(code);
|
||||||
response += " ";
|
response += " ";
|
||||||
@ -155,15 +155,15 @@ void ESP8266WebServer::send(int code, const char* content_type, String content)
|
|||||||
sendContent(response);
|
sendContent(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESP8266WebServer::send(int code, char* content_type, String content) {
|
void ESP8266WebServer::send(int code, char* content_type, const String& content) {
|
||||||
send(code, (const char*)content_type, content);
|
send(code, (const char*)content_type, content);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESP8266WebServer::send(int code, String content_type, String content) {
|
void ESP8266WebServer::send(int code, const String& content_type, const String& content) {
|
||||||
send(code, (const char*)content_type.c_str(), content);
|
send(code, (const char*)content_type.c_str(), content);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ESP8266WebServer::sendContent(String content) {
|
void ESP8266WebServer::sendContent(const String& content) {
|
||||||
size_t size_to_send = content.length();
|
size_t size_to_send = content.length();
|
||||||
size_t size_sent = 0;
|
size_t size_sent = 0;
|
||||||
while(size_to_send) {
|
while(size_to_send) {
|
||||||
|
@ -77,15 +77,15 @@ public:
|
|||||||
// code - HTTP response code, can be 200 or 404
|
// code - HTTP response code, can be 200 or 404
|
||||||
// content_type - HTTP content type, like "text/plain" or "image/png"
|
// content_type - HTTP content type, like "text/plain" or "image/png"
|
||||||
// content - actual content body
|
// content - actual content body
|
||||||
void send(int code, const char* content_type = NULL, String content = String(""));
|
void send(int code, const char* content_type = NULL, const String& content = String(""));
|
||||||
void send(int code, char* content_type, String content);
|
void send(int code, char* content_type, const String& content);
|
||||||
void send(int code, String content_type, String content);
|
void send(int code, const String& content_type, const String& content);
|
||||||
|
|
||||||
void setContentLength(size_t contentLength) { _contentLength = contentLength; }
|
void setContentLength(size_t contentLength) { _contentLength = contentLength; }
|
||||||
void sendHeader(String name, String value, bool first = false);
|
void sendHeader(const String& name, const String& value, bool first = false);
|
||||||
void sendContent(String content);
|
void sendContent(const String& content);
|
||||||
|
|
||||||
template<typename T> size_t streamFile(T &file, String contentType){
|
template<typename T> size_t streamFile(T &file, const String& contentType){
|
||||||
setContentLength(file.size());
|
setContentLength(file.size());
|
||||||
if (String(file.name()).endsWith(".gz") &&
|
if (String(file.name()).endsWith(".gz") &&
|
||||||
contentType != "application/x-gzip" &&
|
contentType != "application/x-gzip" &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user