From 42cc8712074c0cc55d7f6545964eff0e26347fc9 Mon Sep 17 00:00:00 2001 From: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:27:10 -0800 Subject: [PATCH] fix: Remove vendored boost file to compile with boost 1.87. fix: Replace expires_from_now with expires_after. --- .../sse-contract-tests/src/event_outbox.cpp | 6 +- .../src/events/asio_event_processor.cpp | 2 +- libs/internal/src/events/request_worker.cpp | 2 +- libs/server-sent-events/src/client.cpp | 2 +- .../boost/smart_ptr/allocate_unique.hpp | 490 ------------------ 5 files changed, 6 insertions(+), 496 deletions(-) delete mode 100644 vendor/foxy/include/boost/smart_ptr/allocate_unique.hpp diff --git a/contract-tests/sse-contract-tests/src/event_outbox.cpp b/contract-tests/sse-contract-tests/src/event_outbox.cpp index 05b7e07ed..2fb838d2d 100644 --- a/contract-tests/sse-contract-tests/src/event_outbox.cpp +++ b/contract-tests/sse-contract-tests/src/event_outbox.cpp @@ -37,13 +37,13 @@ void EventOutbox::do_shutdown(beast::error_code ec) { void EventOutbox::post_event(launchdarkly::sse::Event event) { auto http_request = build_request(callback_counter_++, std::move(event)); outbox_.push(http_request); - flush_timer_.expires_from_now(boost::posix_time::milliseconds(0)); + flush_timer_.expires_after(boost::posix_time::milliseconds(0)); } void EventOutbox::post_error(launchdarkly::sse::Error error) { auto http_request = build_request(callback_counter_++, error); outbox_.push(http_request); - flush_timer_.expires_from_now(boost::posix_time::milliseconds(0)); + flush_timer_.expires_after(boost::posix_time::milliseconds(0)); } void EventOutbox::run() { @@ -133,7 +133,7 @@ void EventOutbox::on_flush_timer(boost::system::error_code ec) { } // If the outbox is empty, wait a bit before trying again. - flush_timer_.expires_from_now(kFlushInterval); + flush_timer_.expires_after(kFlushInterval); flush_timer_.async_wait(beast::bind_front_handler( &EventOutbox::on_flush_timer, shared_from_this())); } diff --git a/libs/internal/src/events/asio_event_processor.cpp b/libs/internal/src/events/asio_event_processor.cpp index 6f56b7dcf..b17aea383 100644 --- a/libs/internal/src/events/asio_event_processor.cpp +++ b/libs/internal/src/events/asio_event_processor.cpp @@ -168,7 +168,7 @@ void AsioEventProcessor::ScheduleFlush() { LD_LOG(logger_, LogLevel::kDebug) << "event-processor: scheduling flush in " << flush_interval_.count() << "ms"; - timer_.expires_from_now(flush_interval_); + timer_.expires_after(flush_interval_); timer_.async_wait([this](boost::system::error_code ec) { if (ec) { LD_LOG(logger_, LogLevel::kDebug) diff --git a/libs/internal/src/events/request_worker.cpp b/libs/internal/src/events/request_worker.cpp index 36847ad81..4548985ee 100644 --- a/libs/internal/src/events/request_worker.cpp +++ b/libs/internal/src/events/request_worker.cpp @@ -109,7 +109,7 @@ void RequestWorker::OnDeliveryAttempt(network::HttpResult const& result, << tag_ << "error posting " << batch_->Count() << " event(s) (will retry): HTTP error " << result.Status(); } - timer_.expires_from_now(retry_delay_); + timer_.expires_after(retry_delay_); timer_.async_wait([this, callback](boost::system::error_code ec) { if (ec) { return; diff --git a/libs/server-sent-events/src/client.cpp b/libs/server-sent-events/src/client.cpp index aebe5b2c3..bc6128fa6 100644 --- a/libs/server-sent-events/src/client.cpp +++ b/libs/server-sent-events/src/client.cpp @@ -140,7 +140,7 @@ class FoxyClient : public Client, create_session(); create_parser(); - backoff_timer_.expires_from_now(backoff_.delay()); + backoff_timer_.expires_after(backoff_.delay()); backoff_timer_.async_wait(beast::bind_front_handler( &FoxyClient::on_backoff, shared_from_this())); } diff --git a/vendor/foxy/include/boost/smart_ptr/allocate_unique.hpp b/vendor/foxy/include/boost/smart_ptr/allocate_unique.hpp deleted file mode 100644 index f2627af0d..000000000 --- a/vendor/foxy/include/boost/smart_ptr/allocate_unique.hpp +++ /dev/null @@ -1,490 +0,0 @@ -/* -Copyright 2019 Glen Joseph Fernandes -(glenjofe@gmail.com) - -Distributed under the Boost Software License, Version 1.0. -(http://www.boost.org/LICENSE_1_0.txt) -*/ -#ifndef BOOST_SMART_PTR_ALLOCATE_UNIQUE_HPP -#define BOOST_SMART_PTR_ALLOCATE_UNIQUE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ -namespace detail -{ -template -struct sp_alloc_size -{ - BOOST_STATIC_CONSTEXPR std::size_t value = 1; -}; - -template -struct sp_alloc_size -{ - BOOST_STATIC_CONSTEXPR std::size_t value = sp_alloc_size::value; -}; - -template -struct sp_alloc_size -{ - BOOST_STATIC_CONSTEXPR std::size_t value = N * sp_alloc_size::value; -}; - -template -struct sp_alloc_result -{ - typedef T type; -}; - -template -struct sp_alloc_result -{ - typedef T type[]; -}; - -template -struct sp_alloc_value -{ - typedef typename boost::remove_cv::type>::type type; -}; - -#if !defined(BOOST_NO_CXX11_ALLOCATOR) -template -struct sp_alloc_to -{ - typedef typename std::allocator_traits::template rebind_alloc type; -}; -#else -template -struct sp_alloc_to -{ - typedef typename A::template rebind::other type; -}; -#endif - -#if !defined(BOOST_NO_CXX11_ALLOCATOR) -template -struct sp_alloc_type -{ - typedef typename std::allocator_traits::pointer type; -}; -#else -template -struct sp_alloc_type -{ - typedef typename A::pointer type; -}; -#endif - -template -class sp_alloc_ptr { -public: - typedef T element_type; - - sp_alloc_ptr() BOOST_SP_NOEXCEPT : p_() {} - -#if defined(BOOST_MSVC) && BOOST_MSVC == 1600 - sp_alloc_ptr(T* p) BOOST_SP_NOEXCEPT : p_(const_cast::type*>(p)) {} -#endif - - sp_alloc_ptr(std::size_t, P p) BOOST_SP_NOEXCEPT : p_(p) {} - -#if !defined(BOOST_NO_CXX11_NULLPTR) - sp_alloc_ptr(detail::sp_nullptr_t) BOOST_SP_NOEXCEPT : p_() {} -#endif - - T& operator*() const { return *p_; } - - T* operator->() const BOOST_SP_NOEXCEPT { return boost::to_address(p_); } - -#if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - explicit operator bool() const BOOST_SP_NOEXCEPT { return !!p_; } -#endif - - bool operator!() const BOOST_SP_NOEXCEPT { return !p_; } - - P - ptr() const BOOST_SP_NOEXCEPT - { - return p_; - } - - BOOST_STATIC_CONSTEXPR std::size_t - size() BOOST_SP_NOEXCEPT - { - return 1; - } - -#if defined(BOOST_MSVC) && BOOST_MSVC < 1910 - static sp_alloc_ptr - pointer_to(T& v) - { - return sp_alloc_ptr( - 1, std::pointer_traits

::pointer_to(const_cast::type&>(v))); - } -#endif - -private: - P p_; -}; - -template -class sp_alloc_ptr { -public: - typedef T element_type; - - sp_alloc_ptr() BOOST_SP_NOEXCEPT : p_() {} - - sp_alloc_ptr(std::size_t n, P p) BOOST_SP_NOEXCEPT : p_(p), n_(n) {} - -#if !defined(BOOST_NO_CXX11_NULLPTR) - sp_alloc_ptr(detail::sp_nullptr_t) BOOST_SP_NOEXCEPT : p_() {} -#endif - - T& operator[](std::size_t i) const { return p_[i]; } - -#if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - explicit operator bool() const BOOST_SP_NOEXCEPT { return !!p_; } -#endif - - bool operator!() const BOOST_SP_NOEXCEPT { return !p_; } - - P - ptr() const BOOST_SP_NOEXCEPT - { - return p_; - } - - std::size_t - size() const BOOST_SP_NOEXCEPT - { - return n_; - } - -#if defined(BOOST_MSVC) && BOOST_MSVC < 1910 - static sp_alloc_ptr - pointer_to(T& v) - { - return sp_alloc_ptr( - n_, std::pointer_traits

::pointer_to(const_cast::type&>(v))); - } -#endif - -private: - P p_; - std::size_t n_; -}; - -template -class sp_alloc_ptr { -public: - typedef T element_type; - - sp_alloc_ptr() BOOST_SP_NOEXCEPT : p_() {} - - sp_alloc_ptr(std::size_t, P p) BOOST_SP_NOEXCEPT : p_(p) {} - -#if !defined(BOOST_NO_CXX11_NULLPTR) - sp_alloc_ptr(detail::sp_nullptr_t) BOOST_SP_NOEXCEPT : p_() {} -#endif - - T& operator[](std::size_t i) const { return p_[i]; } - -#if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - explicit operator bool() const BOOST_SP_NOEXCEPT { return !!p_; } -#endif - - bool operator!() const BOOST_SP_NOEXCEPT { return !p_; } - - P - ptr() const BOOST_SP_NOEXCEPT - { - return p_; - } - - BOOST_STATIC_CONSTEXPR std::size_t - size() BOOST_SP_NOEXCEPT - { - return N; - } - -#if defined(BOOST_MSVC) && BOOST_MSVC < 1910 - static sp_alloc_ptr - pointer_to(T& v) - { - return sp_alloc_ptr( - N, std::pointer_traits

::pointer_to(const_cast::type&>(v))); - } -#endif - -private: - P p_; -}; - -template -inline bool -operator==(const sp_alloc_ptr& lhs, const sp_alloc_ptr& rhs) -{ - return lhs.ptr() == rhs.ptr(); -} - -template -inline bool -operator!=(const sp_alloc_ptr& lhs, const sp_alloc_ptr& rhs) -{ - return !(lhs == rhs); -} - -#if !defined(BOOST_NO_CXX11_NULLPTR) -template -inline bool -operator==(const sp_alloc_ptr& lhs, detail::sp_nullptr_t) BOOST_SP_NOEXCEPT -{ - return !lhs.ptr(); -} - -template -inline bool -operator==(detail::sp_nullptr_t, const sp_alloc_ptr& rhs) BOOST_SP_NOEXCEPT -{ - return !rhs.ptr(); -} - -template -inline bool -operator!=(const sp_alloc_ptr& lhs, detail::sp_nullptr_t) BOOST_SP_NOEXCEPT -{ - return !!lhs.ptr(); -} - -template -inline bool -operator!=(detail::sp_nullptr_t, const sp_alloc_ptr& rhs) BOOST_SP_NOEXCEPT -{ - return !!rhs.ptr(); -} -#endif - -template -inline void -sp_alloc_clear(A& a, typename sp_alloc_type::type p, std::size_t, boost::false_type) -{ - boost::alloc_destroy(a, boost::to_address(p)); -} - -template -inline void -sp_alloc_clear(A& a, typename sp_alloc_type::type p, std::size_t n, boost::true_type) -{ -#if defined(BOOST_MSVC) && BOOST_MSVC < 1800 - if (!p) { return; } -#endif - boost::alloc_destroy_n(a, boost::first_scalar(boost::to_address(p)), - n * sp_alloc_size::value); -} - -} // namespace detail - -template -class alloc_deleter - : empty_value::type>::type> { - typedef typename detail::sp_alloc_to::type>::type allocator; - typedef empty_value base; - -public: - typedef detail::sp_alloc_ptr::type> pointer; - - explicit alloc_deleter(const allocator& a) BOOST_SP_NOEXCEPT : base(empty_init_t(), a) {} - - void - operator()(pointer p) - { - detail::sp_alloc_clear(base::get(), p.ptr(), p.size(), is_array()); - base::get().deallocate(p.ptr(), p.size()); - } -}; - -#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) -template -using alloc_noinit_deleter = alloc_deleter>; -#endif - -namespace detail -{ -template -class sp_alloc_make { -public: - typedef typename sp_alloc_to::type>::type allocator; - -private: - typedef boost::alloc_deleter deleter; - -public: - typedef std::unique_ptr::type, deleter> type; - - sp_alloc_make(const A& a, std::size_t n) - : a_(a) - , n_(n) - , p_(a_.allocate(n)) - { - } - - ~sp_alloc_make() - { - if (p_) { a_.deallocate(p_, n_); } - } - - typename allocator::value_type* - get() const BOOST_SP_NOEXCEPT - { - return boost::to_address(p_); - } - - allocator& - state() BOOST_SP_NOEXCEPT - { - return a_; - } - - type - release() BOOST_SP_NOEXCEPT - { - pointer p = p_; - p_ = pointer(); - return type(typename deleter::pointer(n_, p), deleter(a_)); - } - -private: - typedef typename sp_alloc_type::type pointer; - - allocator a_; - std::size_t n_; - pointer p_; -}; - -} // namespace detail - -template -inline typename enable_if_::value, std::unique_ptr>>::type -allocate_unique(const A& alloc) -{ - detail::sp_alloc_make c(alloc, 1); - boost::alloc_construct(c.state(), c.get()); - return c.release(); -} - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) -template -inline typename enable_if_::value, std::unique_ptr>>::type -allocate_unique(const A& alloc, Args&&... args) -{ - detail::sp_alloc_make c(alloc, 1); - boost::alloc_construct(c.state(), c.get(), std::forward(args)...); - return c.release(); -} -#endif - -template -inline typename enable_if_::value, std::unique_ptr>>::type -allocate_unique(const A& alloc, typename type_identity::type&& value) -{ - detail::sp_alloc_make c(alloc, 1); - boost::alloc_construct(c.state(), c.get(), std::move(value)); - return c.release(); -} - -template -inline typename enable_if_::value, - std::unique_ptr>>>::type -allocate_unique_noinit(const A& alloc) -{ - return boost::allocate_unique>(alloc); -} - -template -inline - typename enable_if_::value, std::unique_ptr>>::type - allocate_unique(const A& alloc, std::size_t size) -{ - detail::sp_alloc_make c(alloc, size); - boost::alloc_construct_n(c.state(), boost::first_scalar(c.get()), - size * detail::sp_alloc_size::value); - return c.release(); -} - -template -inline typename enable_if_< - is_bounded_array::value, - std::unique_ptr::type, alloc_deleter>>::type -allocate_unique(const A& alloc) -{ - detail::sp_alloc_make c(alloc, extent::value); - boost::alloc_construct_n(c.state(), boost::first_scalar(c.get()), - detail::sp_alloc_size::value); - return c.release(); -} - -template -inline typename enable_if_::value, - std::unique_ptr>>>::type -allocate_unique_noinit(const A& alloc, std::size_t size) -{ - return boost::allocate_unique>(alloc, size); -} - -template -inline typename enable_if_::value, - std::unique_ptr::type, - alloc_deleter>>>::type -allocate_unique_noinit(const A& alloc) -{ - return boost::allocate_unique>(alloc); -} - -template -inline - typename enable_if_::value, std::unique_ptr>>::type - allocate_unique(const A& alloc, std::size_t size, const typename remove_extent::type& value) -{ - detail::sp_alloc_make c(alloc, size); - boost::alloc_construct_n(c.state(), boost::first_scalar(c.get()), - size * detail::sp_alloc_size::value, boost::first_scalar(&value), - detail::sp_alloc_size::type>::value); - return c.release(); -} - -template -inline typename enable_if_< - is_bounded_array::value, - std::unique_ptr::type, alloc_deleter>>::type -allocate_unique(const A& alloc, const typename remove_extent::type& value) -{ - detail::sp_alloc_make c(alloc, extent::value); - boost::alloc_construct_n(c.state(), boost::first_scalar(c.get()), detail::sp_alloc_size::value, - boost::first_scalar(&value), - detail::sp_alloc_size::type>::value); - return c.release(); -} - -} // namespace boost - -#endif