Skip to content

Commit f33553c

Browse files
authored
Remove ineffective/unneeded const from shared_ptr return types (#285)
* remove ineffective/unneeded const qualifier on shared_ptr return types * remove ineffective/unneeded const from shared_ptr instances in tests * revert accidental removal of const on pass by reference shared_ptrs
1 parent 8ab2725 commit f33553c

36 files changed

+134
-134
lines changed

README.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ The most basic example of creating a server and handling a requests for the path
127127

128128
class hello_world_resource : public http_resource {
129129
public:
130-
const std::shared_ptr<http_response> render(const http_request&) {
130+
std::shared_ptr<http_response> render(const http_request&) {
131131
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
132132
}
133133
};
@@ -219,17 +219,17 @@ In all these 3 cases libhttpserver would provide a standard HTTP response to the
219219

220220
using namespace httpserver;
221221

222-
const std::shared_ptr<http_response> not_found_custom(const http_request& req) {
222+
std::shared_ptr<http_response> not_found_custom(const http_request& req) {
223223
return std::shared_ptr<string_response>(new string_response("Not found custom", 404, "text/plain"));
224224
}
225225

226-
const std::shared_ptr<http_response> not_allowed_custom(const http_request& req) {
226+
std::shared_ptr<http_response> not_allowed_custom(const http_request& req) {
227227
return std::shared_ptr<string_response>(new string_response("Not allowed custom", 405, "text/plain"));
228228
}
229229

230230
class hello_world_resource : public http_resource {
231231
public:
232-
const std::shared_ptr<http_response> render(const http_request&) {
232+
std::shared_ptr<http_response> render(const http_request&) {
233233
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
234234
}
235235
};
@@ -275,7 +275,7 @@ You can also check this example on [github](https://github.com/etr/libhttpserver
275275
276276
class hello_world_resource : public http_resource {
277277
public:
278-
const std::shared_ptr<http_response> render(const http_request&) {
278+
std::shared_ptr<http_response> render(const http_request&) {
279279
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
280280
}
281281
};
@@ -321,7 +321,7 @@ You can also check this example on [github](https://github.com/etr/libhttpserver
321321

322322
class hello_world_resource : public http_resource {
323323
public:
324-
const std::shared_ptr<http_response> render(const http_request&) {
324+
std::shared_ptr<http_response> render(const http_request&) {
325325
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
326326
}
327327
};
@@ -391,15 +391,15 @@ Once a webserver is created, you can manage its execution through the following
391391
The `http_resource` class represents a logical collection of HTTP methods that will be associated to a URL when registered on the webserver. The class is **designed for extension** and it is where most of your code should ideally live. When the webserver matches a request against a resource (see: [resource registration](#registering-resources)), the method correspondent to the one in the request (GET, POST, etc..) (see below) is called on the resource.
392392

393393
Given this, the `http_resource` class contains the following extensible methods (also called `handlers` or `render methods`):
394-
* _**const std::shared_ptr<http_response>** http_resource::render_GET(**const http_request&** req):_ Invoked on an HTTP GET request.
395-
* _**const std::shared_ptr<http_response>** http_resource::render_POST(**const http_request&** req):_ Invoked on an HTTP POST request.
396-
* _**const std::shared_ptr<http_response>** http_resource::render_PUT(**const http_request&** req):_ Invoked on an HTTP PUT request.
397-
* _**const std::shared_ptr<http_response>** http_resource::render_HEAD(**const http_request&** req):_ Invoked on an HTTP HEAD request.
398-
* _**const std::shared_ptr<http_response>** http_resource::render_DELETE(**const http_request&** req):_ Invoked on an HTTP DELETE request.
399-
* _**const std::shared_ptr<http_response>** http_resource::render_TRACE(**const http_request&** req):_ Invoked on an HTTP TRACE request.
400-
* _**const std::shared_ptr<http_response>** http_resource::render_OPTIONS(**const http_request&** req):_ Invoked on an HTTP OPTIONS request.
401-
* _**const std::shared_ptr<http_response>** http_resource::render_CONNECT(**const http_request&** req):_ Invoked on an HTTP CONNECT request.
402-
* _**const std::shared_ptr<http_response>** http_resource::render(**const http_request&** req):_ Invoked as a backup method if the matching method is not implemented. It can be used whenever you want all the invocations on a URL to activate the same behavior regardless of the HTTP method requested. The default implementation of the `render` method returns an empty response with a `404`.
394+
* _**std::shared_ptr<http_response>** http_resource::render_GET(**const http_request&** req):_ Invoked on an HTTP GET request.
395+
* _**std::shared_ptr<http_response>** http_resource::render_POST(**const http_request&** req):_ Invoked on an HTTP POST request.
396+
* _**std::shared_ptr<http_response>** http_resource::render_PUT(**const http_request&** req):_ Invoked on an HTTP PUT request.
397+
* _**std::shared_ptr<http_response>** http_resource::render_HEAD(**const http_request&** req):_ Invoked on an HTTP HEAD request.
398+
* _**std::shared_ptr<http_response>** http_resource::render_DELETE(**const http_request&** req):_ Invoked on an HTTP DELETE request.
399+
* _**std::shared_ptr<http_response>** http_resource::render_TRACE(**const http_request&** req):_ Invoked on an HTTP TRACE request.
400+
* _**std::shared_ptr<http_response>** http_resource::render_OPTIONS(**const http_request&** req):_ Invoked on an HTTP OPTIONS request.
401+
* _**std::shared_ptr<http_response>** http_resource::render_CONNECT(**const http_request&** req):_ Invoked on an HTTP CONNECT request.
402+
* _**std::shared_ptr<http_response>** http_resource::render(**const http_request&** req):_ Invoked as a backup method if the matching method is not implemented. It can be used whenever you want all the invocations on a URL to activate the same behavior regardless of the HTTP method requested. The default implementation of the `render` method returns an empty response with a `404`.
403403

404404
#### Example of implementation of render methods
405405
```cpp
@@ -409,11 +409,11 @@ Given this, the `http_resource` class contains the following extensible methods
409409

410410
class hello_world_resource : public http_resource {
411411
public:
412-
const std::shared_ptr<http_response> render_GET(const http_request&) {
412+
std::shared_ptr<http_response> render_GET(const http_request&) {
413413
return std::shared_ptr<http_response>(new string_response("GET: Hello, World!"));
414414
}
415415

416-
const std::shared_ptr<http_response> render(const http_request&) {
416+
std::shared_ptr<http_response> render(const http_request&) {
417417
return std::shared_ptr<http_response>(new string_response("OTHER: Hello, World!"));
418418
}
419419
};
@@ -449,7 +449,7 @@ The base `http_resource` class has a set of methods that can be used to allow an
449449
450450
class hello_world_resource : public http_resource {
451451
public:
452-
const std::shared_ptr<http_response> render(const http_request&) {
452+
std::shared_ptr<http_response> render(const http_request&) {
453453
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
454454
}
455455
};
@@ -496,21 +496,21 @@ There are essentially four ways to specify an endpoint string:
496496

497497
class hello_world_resource : public http_resource {
498498
public:
499-
const std::shared_ptr<http_response> render(const http_request&) {
499+
std::shared_ptr<http_response> render(const http_request&) {
500500
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
501501
}
502502
};
503503

504504
class handling_multiple_resource : public http_resource {
505505
public:
506-
const std::shared_ptr<http_response> render(const http_request& req) {
506+
std::shared_ptr<http_response> render(const http_request& req) {
507507
return std::shared_ptr<http_response>(new string_response("Your URL: " + req.get_path()));
508508
}
509509
};
510510

511511
class url_args_resource : public http_resource {
512512
public:
513-
const std::shared_ptr<http_response> render(const http_request& req) {
513+
std::shared_ptr<http_response> render(const http_request& req) {
514514
return std::shared_ptr<http_response>(new string_response("ARGS: " + req.get_arg("arg1") + " and " + req.get_arg("arg2")));
515515
}
516516
};
@@ -596,7 +596,7 @@ Details on the `http::file_info` structure.
596596

597597
class hello_world_resource : public http_resource {
598598
public:
599-
const std::shared_ptr<http_response> render(const http_request& req) {
599+
std::shared_ptr<http_response> render(const http_request& req) {
600600
return std::shared_ptr<http_response>(new string_response("Hello: " + req.get_arg("name")));
601601
}
602602
};
@@ -649,7 +649,7 @@ The `http_response` class offers an additional set of methods to "decorate" your
649649

650650
class hello_world_resource : public http_resource {
651651
public:
652-
const std::shared_ptr<http_response> render(const http_request&) {
652+
std::shared_ptr<http_response> render(const http_request&) {
653653
std::shared_ptr<http_response> response = std::shared_ptr<http_response>(new string_response("Hello, World!"));
654654
response->with_header("MyHeader", "MyValue");
655655
return response;
@@ -707,7 +707,7 @@ Examples of valid IPs include:
707707

708708
class hello_world_resource : public http_resource {
709709
public:
710-
const std::shared_ptr<http_response> render(const http_request&) {
710+
std::shared_ptr<http_response> render(const http_request&) {
711711
return std::shared_ptr<http_response>(new string_response("Hello, World!"));
712712
}
713713
};
@@ -750,7 +750,7 @@ Client certificate authentication uses a X.509 certificate from the client. This
750750

751751
class user_pass_resource : public httpserver::http_resource {
752752
public:
753-
const std::shared_ptr<http_response> render_GET(const http_request& req) {
753+
std::shared_ptr<http_response> render_GET(const http_request& req) {
754754
if (req.get_user() != "myuser" || req.get_pass() != "mypass") {
755755
return std::shared_ptr<basic_auth_fail_response>(new basic_auth_fail_response("FAIL", "test@example.com"));
756756
}
@@ -786,7 +786,7 @@ You can also check this example on [github](https://github.com/etr/libhttpserver
786786

787787
class digest_resource : public httpserver::http_resource {
788788
public:
789-
const std::shared_ptr<http_response> render_GET(const http_request& req) {
789+
std::shared_ptr<http_response> render_GET(const http_request& req) {
790790
if (req.get_digested_user() == "") {
791791
return std::shared_ptr<digest_auth_fail_response>(new digest_auth_fail_response("FAIL", "test@example.com", MY_OPAQUE, true));
792792
}
@@ -835,7 +835,7 @@ libhttpserver provides a set of constants to help you develop your HTTP server.
835835

836836
class file_response_resource : public http_resource {
837837
public:
838-
const std::shared_ptr<http_response> render_GET(const http_request& req) {
838+
std::shared_ptr<http_response> render_GET(const http_request& req) {
839839
return std::shared_ptr<file_response>(new file_response("test_content", 200, "text/plain"));
840840
}
841841
};
@@ -878,7 +878,7 @@ You can also check this example on [github](https://github.com/etr/libhttpserver
878878

879879
class deferred_resource : public http_resource {
880880
public:
881-
const std::shared_ptr<http_response> render_GET(const http_request& req) {
881+
std::shared_ptr<http_response> render_GET(const http_request& req) {
882882
return std::shared_ptr<deferred_response<void> >(new deferred_response<void>(test_callback, nullptr, "cycle callback response"));
883883
}
884884
};
@@ -935,7 +935,7 @@ You can also check this example on [github](https://github.com/etr/libhttpserver
935935
936936
class deferred_resource : public http_resource {
937937
public:
938-
const std::shared_ptr<http_response> render_GET(const http_request& req) {
938+
std::shared_ptr<http_response> render_GET(const http_request& req) {
939939
std::shared_ptr<std::atomic<int> > closure_data(new std::atomic<int>(counter++));
940940
return std::shared_ptr<deferred_response<std::atomic<int> > >(new deferred_response<std::atomic<int> >(test_callback, closure_data, "cycle callback response"));
941941
}

examples/allowing_disallowing_methods.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
class hello_world_resource : public httpserver::http_resource {
2424
public:
25-
const std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
25+
std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
2626
return std::shared_ptr<httpserver::http_response>(new httpserver::string_response("Hello, World!"));
2727
}
2828
};

examples/basic_authentication.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
class user_pass_resource : public httpserver::http_resource {
2424
public:
25-
const std::shared_ptr<httpserver::http_response> render_GET(const httpserver::http_request& req) {
25+
std::shared_ptr<httpserver::http_response> render_GET(const httpserver::http_request& req) {
2626
if (req.get_user() != "myuser" || req.get_pass() != "mypass") {
2727
return std::shared_ptr<httpserver::basic_auth_fail_response>(new httpserver::basic_auth_fail_response("FAIL", "test@example.com"));
2828
}

examples/benchmark_nodelay.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class hello_world_resource : public httpserver::http_resource {
3232
resp(resp) {
3333
}
3434

35-
const std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
35+
std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
3636
return resp;
3737
}
3838

examples/benchmark_select.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class hello_world_resource : public httpserver::http_resource {
3232
resp(resp) {
3333
}
3434

35-
const std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
35+
std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
3636
return resp;
3737
}
3838

examples/benchmark_threads.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class hello_world_resource : public httpserver::http_resource {
3232
resp(resp) {
3333
}
3434

35-
const std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
35+
std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
3636
return resp;
3737
}
3838

examples/custom_access_log.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ void custom_access_log(const std::string& url) {
2828

2929
class hello_world_resource : public httpserver::http_resource {
3030
public:
31-
const std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
31+
std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
3232
return std::shared_ptr<httpserver::http_response>(new httpserver::string_response("Hello, World!"));
3333
}
3434
};

examples/custom_error.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@
2020

2121
#include <httpserver.hpp>
2222

23-
const std::shared_ptr<httpserver::http_response> not_found_custom(const httpserver::http_request&) {
23+
std::shared_ptr<httpserver::http_response> not_found_custom(const httpserver::http_request&) {
2424
return std::shared_ptr<httpserver::string_response>(new httpserver::string_response("Not found custom", 404, "text/plain"));
2525
}
2626

27-
const std::shared_ptr<httpserver::http_response> not_allowed_custom(const httpserver::http_request&) {
27+
std::shared_ptr<httpserver::http_response> not_allowed_custom(const httpserver::http_request&) {
2828
return std::shared_ptr<httpserver::string_response>(new httpserver::string_response("Not allowed custom", 405, "text/plain"));
2929
}
3030

3131
class hello_world_resource : public httpserver::http_resource {
3232
public:
33-
const std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
33+
std::shared_ptr<httpserver::http_response> render(const httpserver::http_request&) {
3434
return std::shared_ptr<httpserver::http_response>(new httpserver::string_response("Hello, World!"));
3535
}
3636
};

examples/deferred_with_accumulator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ ssize_t test_callback(std::shared_ptr<std::atomic<int> > closure_data, char* buf
5656

5757
class deferred_resource : public httpserver::http_resource {
5858
public:
59-
const std::shared_ptr<httpserver::http_response> render_GET(const httpserver::http_request&) {
59+
std::shared_ptr<httpserver::http_response> render_GET(const httpserver::http_request&) {
6060
std::shared_ptr<std::atomic<int> > closure_data(new std::atomic<int>(counter++));
6161
return std::shared_ptr<httpserver::deferred_response<std::atomic<int> > >(new httpserver::deferred_response<std::atomic<int> >(test_callback, closure_data, "cycle callback response"));
6262
}

examples/digest_authentication.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
class digest_resource : public httpserver::http_resource {
2626
public:
27-
const std::shared_ptr<httpserver::http_response> render_GET(const httpserver::http_request& req) {
27+
std::shared_ptr<httpserver::http_response> render_GET(const httpserver::http_request& req) {
2828
if (req.get_digested_user() == "") {
2929
return std::shared_ptr<httpserver::digest_auth_fail_response>(new httpserver::digest_auth_fail_response("FAIL", "test@example.com", MY_OPAQUE, true));
3030
} else {

0 commit comments

Comments
 (0)