Merge branch 'master' into keepalive_WebSocket

This commit is contained in:
Pau Puerta 2022-12-27 00:52:04 +01:00 committed by GitHub
commit 4fde964b82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 45 additions and 3 deletions

View File

@ -30,7 +30,7 @@
#else
#define CROW_ROUTE(app, url) app.template route<crow::black_magic::get_parameter_tag(url)>(url)
#define CROW_BP_ROUTE(blueprint, url) blueprint.new_rule_tagged<crow::black_magic::get_parameter_tag(url)>(url)
#define CROW_WEBSOCKET_ROUTE(app, url) app.route<crow::black_magic::get_parameter_tag(url)>(url).websocket<decltype(app)>(&app)
#define CROW_WEBSOCKET_ROUTE(app, url) app.route<crow::black_magic::get_parameter_tag(url)>(url).websocket<std::remove_reference<decltype(app)>::type>(&app)
#define CROW_MIDDLEWARES(app, ...) template middlewares<typename std::remove_reference<decltype(app)>::type, __VA_ARGS__>()
#endif
#define CROW_CATCHALL_ROUTE(app) app.catchall_route()

View File

@ -1653,7 +1653,7 @@ namespace crow
}
else
{
#if defined(__APPLE__) || defined(__MACH__)
#if defined(__APPLE__) || defined(__MACH__) || defined (__FreeBSD__)
o = std::unique_ptr<object>(new object(initializer_list));
#else
(*o) = initializer_list;
@ -1672,7 +1672,7 @@ namespace crow
}
else
{
#if defined(__APPLE__) || defined(__MACH__)
#if defined(__APPLE__) || defined(__MACH__) || defined (__FreeBSD__)
o = std::unique_ptr<object>(new object(value));
#else
(*o) = value;

View File

@ -18,6 +18,7 @@ endif()
add_subdirectory(template)
add_subdirectory(multi_file)
add_subdirectory(external_definition)
if ("ssl" IN_LIST CROW_FEATURES)
add_subdirectory(ssl)
endif()

View File

@ -0,0 +1,16 @@
project(test_external_definition)
add_executable(
${PROJECT_NAME}
main.cpp
)
target_include_directories(
${PROJECT_NAME}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
)
target_link_libraries(
${PROJECT_NAME}
PUBLIC Crow::Crow
)

View File

@ -0,0 +1,25 @@
// Testing whether crow routes can be defined in an external function.
#include "crow.h"
void define_endpoints(crow::SimpleApp& app)
{
CROW_ROUTE(app, "/")
([]() {
return "Hello, world!";
});
CROW_WEBSOCKET_ROUTE(app, "/ws")
.onaccept([&](const crow::request&, void**) {
return true;
})
.onopen([](crow::websocket::connection&) {})
.onclose([](crow::websocket::connection&, const std::string&) {});
}
int main()
{
crow::SimpleApp app;
define_endpoints(app);
app.port(18080).run();
}