Faster default_resource for files smaller than buffer_size.

This commit is contained in:
eidheim 2015-02-23 09:46:29 +01:00
commit 0acc7455f8
2 changed files with 22 additions and 14 deletions

View file

@ -109,15 +109,19 @@ int main() {
response << "HTTP/1.1 200 OK\r\nContent-Length: " << length << "\r\n\r\n";
//read and send 128 KB at a time
//read and send 128 KB at a time if file-size>buffer_size
size_t buffer_size=131072;
vector<char> buffer(buffer_size);
stringstream ss;
size_t read_length;
while((read_length=ifs.read(&buffer[0], buffer_size).gcount())>0) {
ss.write(&buffer[0], read_length);
response << ss.rdbuf() << HttpServer::flush;
if(length>buffer_size) {
vector<char> buffer(buffer_size);
stringstream ss;
size_t read_length;
while((read_length=ifs.read(&buffer[0], buffer_size).gcount())>0) {
ss.write(&buffer[0], read_length);
response << ss.rdbuf() << HttpServer::flush;
}
}
else
response << ifs.rdbuf();
ifs.close();
}

View file

@ -109,15 +109,19 @@ int main() {
response << "HTTP/1.1 200 OK\r\nContent-Length: " << length << "\r\n\r\n";
//read and send 128 KB at a time
//read and send 128 KB at a time if file-size>buffer_size
size_t buffer_size=131072;
vector<char> buffer(buffer_size);
stringstream ss;
size_t read_length;
while((read_length=ifs.read(&buffer[0], buffer_size).gcount())>0) {
ss.write(&buffer[0], read_length);
response << ss.rdbuf() << HttpsServer::flush;
if(length>buffer_size) {
vector<char> buffer(buffer_size);
stringstream ss;
size_t read_length;
while((read_length=ifs.read(&buffer[0], buffer_size).gcount())>0) {
ss.write(&buffer[0], read_length);
response << ss.rdbuf() << HttpServer::flush;
}
}
else
response << ifs.rdbuf();
ifs.close();
}