diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a9289d..478640c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Change Log +

v0.5.0 - 2024-08-04

+ +### Changed +- Less relying on pointers +- CMake target name `cURLio::cURLio` + +### Fixed +- Fix segfaults on kick-starting new requests +- Fix CURL deprecation warnings +- Various bugs +

v0.4 - 2022-11-27

### Changed diff --git a/CMakeLists.txt b/CMakeLists.txt index 09c30a4..b768bb3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project( cURLio - VERSION 0.4.0 + VERSION 0.5.0 DESCRIPTION "The simple glue for cURL and Boost.ASIO" HOMEPAGE_URL "https://github.com/terrakuh/curlio" LANGUAGES CXX diff --git a/README.md b/README.md index fba2c93..b4f727e 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,15 @@ The following examples uses the [coroutines](https://en.cppreference.com/w/cpp/l ```cpp asio::io_service service{}; -auto session = curlio::make_session(service.get_executor()); +curlio::Session session{ service.get_executor() }; // Create request and set options. -auto request = curlio::make_request(session); +auto request = std::make_shared(session); request->set_option("http://example.com"); request->set_option("cURLio"); // Launches the request which will then run in the background. -auto response = co_await session->async_start(request, asio::use_awaitable); +auto response = co_await session.async_start(request, asio::use_awaitable); // Read all and do something with the data. char data[4096]; @@ -52,8 +52,8 @@ cmake --install curlio/build And then in your `CMakeLists.txt`: ```cmake -find_package(curlio 0.4 REQUIRED) -target_link_libraries(my-target PRIVATE curlio::curlio) +find_package(cURLio 0.5 REQUIRED) +target_link_libraries(my-target PRIVATE cURLio::cURLio) ``` ## Debugging diff --git a/curlio/CMakeLists.txt b/curlio/CMakeLists.txt index 90f7c0b..d29e071 100644 --- a/curlio/CMakeLists.txt +++ b/curlio/CMakeLists.txt @@ -6,6 +6,7 @@ target_link_libraries(cURLio INTERFACE CURL::libcurl Threads::Threads Boost::boo target_include_directories( cURLio INTERFACE "$" $ ) +target_compile_features(cURLio INTERFACE cxx_std_17) if(CURLIO_ENABLE_LOGGING) target_compile_definitions(cURLio INTERFACE CURLIO_ENABLE_LOGGING) diff --git a/curlio/basic_request.hpp b/curlio/basic_request.hpp index cd08f24..5c54f6c 100644 --- a/curlio/basic_request.hpp +++ b/curlio/basic_request.hpp @@ -3,48 +3,54 @@ #include "config.hpp" #include "detail/asio_include.hpp" #include "detail/function.hpp" -#include "fwd.hpp" #include "detail/option_type.hpp" +#include "fwd.hpp" #include namespace curlio { template -class Basic_request : public std::enable_shared_from_this> { +class BasicRequest { public: using executor_type = Executor; + using strand_type = CURLIO_ASIO_NS::strand; - Basic_request(const Basic_request& copy); - ~Basic_request() noexcept; + BasicRequest(BasicSession& session) noexcept; + BasicRequest(const BasicRequest& copy) noexcept; + BasicRequest(BasicRequest&& move) = delete; + ~BasicRequest(); template void set_option(detail::option_type