diff --git a/SConscript b/SConscript deleted file mode 100644 index 0fb7a67..0000000 --- a/SConscript +++ /dev/null @@ -1,79 +0,0 @@ -import glob - -Import('ctx') - -ctx.Project('#/3rdParty/openssl') - -sources = [ - 'example/tcp.cpp', - # commented out to speed up compiling - # 'example/openssl-tls.cpp', - # 'example/websocket-tcp.cpp', - # 'example/websocket-tls.cpp', - 'example/src/run_examples.cpp', -] - -test_sources = [ - # 'test/experimental/cancellation.cpp', - # 'test/experimental/message_assembling.cpp', - # 'test/experimental/memory.cpp', - # 'test/experimental/mutex.cpp', - # 'test/experimental/uri_parse.cpp', - 'test/unit/test/serialization.cpp', - 'test/unit/test/publish_send_op.cpp', - 'test/unit/test/client_broker.cpp', - 'test/unit/test/coroutine.cpp', - 'test/unit/test/cancellation.cpp', - 'test/unit/src/run_tests.cpp' -] - -includes = [ - 'include', - '#/3rdParty/openssl/include' -] - -test_includes = [ - 'include', - 'test/unit/include', - '#/3rdParty/openssl/include' -] - -libs = { - 'all': Split('openssl'), -} - -defines = { - 'all' : ['BOOST_ALL_NO_LIB', 'BOOST_NO_TYPEID', '_REENTRANT'], - 'toolchain:llvm' : ['BOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF'], -} - -test_defines = { - 'all' : ['BOOST_ALL_NO_LIB', 'BOOST_NO_TYPEID', 'BOOST_TEST_NO_MAIN=1','_REENTRANT'], - 'toolchain:llvm' : ['BOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF'], -} - -# add ' -ftemplate-backtrace-limit=1' to cxxflags when necessary -cxxflags = { - 'all': Split('-fexceptions -frtti -Wall -Wno-unused-local-typedefs -ftemplate-backtrace-limit=1'), -} - -frameworks = { - 'os:macos': Split('Security'), -} - -ctx.Program(name='mqtt-examples', - source=sources, - includes=includes, - defines=defines, - CXXFLAGs=cxxflags, - libraries=libs, - frameworks=frameworks, -) - -ctx.Program(name='mqtt-tests', - source=test_sources, - includes=test_includes, - defines=test_defines, - CXXFLAGs=cxxflags, - frameworks=frameworks, -) diff --git a/test/experimental/cancellation.cpp b/test/experimental/cancellation.cpp deleted file mode 100644 index 3976cd9..0000000 --- a/test/experimental/cancellation.cpp +++ /dev/null @@ -1,155 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace asio = boost::asio; - -template -decltype(auto) tracking_executor(Handler&& handler) { - return asio::prefer( - asio::get_associated_executor(std::forward(handler)), - asio::execution::outstanding_work.tracked - ); -} - -template -using tracking_type = std::decay_t< - decltype(tracking_executor(std::declval())) ->; - -template -class async_op { - struct on_timer {}; - - std::decay_t _handler; - tracking_type _handler_ex; - asio::cancellation_state _cancel_state; - - // must be unique_ptr because move(timer) cancels previous op - std::unique_ptr _timer; -public: - template - async_op(const Executor& ex, Handler&& handler, const asio::cancellation_slot& cs) : - _handler(std::forward(handler)), - _handler_ex(tracking_executor(_handler)), - _cancel_state(cs), - _timer(std::make_unique(ex)) - {} - - async_op(async_op&&) noexcept = default; - async_op& operator=(async_op&&) noexcept = default; - - using executor_type = asio::steady_timer::executor_type; - executor_type get_executor() const noexcept { - return _timer->get_executor(); - } - - using allocator_type = asio::associated_allocator_t; - allocator_type get_allocator() const noexcept { - return asio::get_associated_allocator(_handler); - } - - using cancellation_slot_type = asio::cancellation_slot; - asio::cancellation_slot get_cancellation_slot() const noexcept { - return _cancel_state.slot(); - } - - void perform() { - _timer->expires_from_now(std::chrono::seconds(5)); - _timer->async_wait(asio::prepend(std::move(*this), on_timer {})); - } - - void operator()(on_timer, boost::system::error_code ec) { - if (ec == asio::error::operation_aborted) { - fmt::print(stderr, "Aborted {}\n", ec.message()); - return; - } - _cancel_state.slot().clear(); - - fmt::print(stderr, "Dispatching with error {}\n", ec.message()); - asio::dispatch(_handler_ex, [h = std::move(_handler), ec]() mutable { - std::move(h)(ec); - }); - } -}; - -class owner { - asio::cancellation_signal _cancel_signal; -public: - void cancel() { - _cancel_signal.emit(asio::cancellation_type::terminal); - _cancel_signal.slot().clear(); - } - ~owner() { - cancel(); - } - - template - decltype(auto) async_perform(asio::io_context& ioc, CompletionToken&& token) { - auto initiation = [this, &ioc](auto handler) { - auto slot = asio::get_associated_cancellation_slot(handler); - async_op( - ioc.get_executor(), std::move(handler), - slot.is_connected() ? slot : _cancel_signal.slot() - ).perform(); - }; - - return asio::async_initiate( - std::move(initiation), token - ); - } -}; - -void cancel_test(asio::io_context& ioc) { - asio::cancellation_signal cancel_signal; - - asio::thread_pool thp; - - { - owner b; - b.async_perform(ioc, - asio::bind_cancellation_slot( - cancel_signal.slot(), - asio::bind_executor(thp.get_executor(), - [](boost::system::error_code ec) { - fmt::print(stderr, "Finished with error {}\n", ec.message()); - } - ) - ) - ); - } - -/* - { - asio::steady_timer timer3(ioc); - timer3.expires_from_now(std::chrono::seconds(3)); - timer3.async_wait( - asio::bind_cancellation_slot( - cancel_signal.slot(), - [&] (boost::system::error_code) { - // cancel_signal.emit(asio::cancellation_type::terminal); - // b.cancel(); - } - ) - ); - } -*/ - asio::steady_timer timer2(ioc); - timer2.expires_from_now(std::chrono::seconds(1)); - timer2.async_wait([&] (boost::system::error_code) { - // cancel_signal.emit(asio::cancellation_type::terminal); - // b.cancel(); - }); - - ioc.run(); - thp.join(); -} - diff --git a/test/experimental/memory.cpp b/test/experimental/memory.cpp deleted file mode 100644 index 056ef9a..0000000 --- a/test/experimental/memory.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include - -#include "../../alloc/memory.h" -#include "../../alloc/string.h" -#include "../../alloc/vector.h" - -namespace asio = boost::asio; - -struct bx { - pma::string s1, s2; - - bx(std::string v1, std::string v2, const pma::alloc& alloc) : - s1(v1.begin(), v1.end(), alloc), - s2(v2.begin(), v2.end(), alloc) - {} -}; - -void test_memory() { - asio::recycling_allocator base_alloc; - pma::resource_adaptor> mem_res { base_alloc }; - auto alloc = pma::alloc(&mem_res); - - pma::string s1 { "abcdefgrthoasofjasfasf", alloc }; - pma::string s2 { alloc }; - s2 = s1; - - //TODO: the commented lines do not compile on Windows - //pma::vector v1 { { 'a', 'b'}, alloc }; - pma::vector v2 { alloc }; - //v2 = std::move(v1); - //pma::vector v3 = v2; - //pma::vector v4 = std::move(v3); - //v1.swap(v2); - - bx vbx { "ABCD", "EFGH", alloc }; - - fmt::print(stderr, "String = {}, is equal: {}\n", s2, - s1.get_allocator() == vbx.s2.get_allocator() - ); - - //fmt::print(stderr, "Vector allocators are equal: {}\n", - // v1.get_allocator() == v2.get_allocator() - //); - - std::allocator_traits::rebind_alloc char_alloc = - alloc; - -} - diff --git a/test/experimental/message_assembling.cpp b/test/experimental/message_assembling.cpp deleted file mode 100644 index 45201a6..0000000 --- a/test/experimental/message_assembling.cpp +++ /dev/null @@ -1,199 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include - -namespace asio = boost::asio; - -namespace async_mqtt { - -using byte_iter = detail::byte_iter; - -class fake_stream { - asio::any_io_executor _ex; - std::string _data; - int _chunk_no = -1; - - std::string _read_buff; - detail::data_span _data_span; - -public: - fake_stream(asio::any_io_executor ex) : _ex(std::move(ex)) { - prepare_data(); - } - - using executor_type = asio::any_io_executor; - const executor_type& get_executor() const noexcept { return _ex; } - - template < - typename BufferType, - typename CompletionToken - > - auto async_read_some( - const BufferType& buffer, detail::duration wait_for, - CompletionToken&& token - ); - - template - decltype(auto) async_assemble( - Stream& stream, detail::duration wait_for, CompletionToken&& token - ); - -private: - void prepare_data(); - std::string_view next_frame(); -}; - -template < - typename BufferType, - typename CompletionToken -> -auto fake_stream::async_read_some( - const BufferType& buffer, detail::duration wait_for, - CompletionToken&& token -) { - auto read_op = [this] (auto handler, const BufferType& buffer) { - auto data = next_frame(); - size_t bytes_read = data.size(); - std::copy(data.begin(), data.end(), static_cast(buffer.data())); - - asio::post(get_executor(), [h = std::move(handler), bytes_read] () mutable { - h(error_code{}, bytes_read); - }); - }; - - return asio::async_initiate( - std::move(read_op), token, buffer - ); -} - -template -decltype(auto) fake_stream::async_assemble( - Stream& stream, detail::duration wait_for, CompletionToken&& token -) { - auto initiation = [this] (auto handler, Stream& stream, detail::duration wait_for) mutable { - detail::assemble_op ( - stream, std::move(handler), - _read_buff, _data_span - ).perform(wait_for, asio::transfer_at_least(0)); - }; - - return asio::async_initiate< - CompletionToken, void (error_code, uint8_t, byte_iter, byte_iter) - > ( - std::move(initiation), token, std::ref(stream), wait_for - ); -} - -void fake_stream::prepare_data() { - connack_props cap; - cap[prop::session_expiry_interval] = 60; - cap[prop::maximum_packet_size] = 16384; - cap[prop::wildcard_subscription_available] = true; - _data = encoders::encode_connack(true, 0x8A, cap); - - puback_props pap; - pap[prop::user_property].emplace_back("PUBACK user property"); - _data += encoders::encode_puback(42, 28, pap); -} - -std::string_view fake_stream::next_frame() { - ++_chunk_no; - if (_chunk_no == 0) - return { _data.begin(), _data.begin() + 2 }; - if (_chunk_no == 1) - return { _data.begin() + 2, _data.begin() + 13 }; - if (_chunk_no == 2) - return { _data.begin() + 13, _data.begin() + 23 }; - if (_chunk_no == 3) - return { _data.begin() + 23, _data.begin() + 35 }; - if (_chunk_no == 4) - return { _data.begin() + 35, _data.end() }; - return { _data.end(), _data.end() }; -} - -template -decltype(auto) async_assemble( - Stream& stream, detail::duration wait_for, - CompletionToken&& token -) { - return stream.async_assemble( - stream, wait_for, std::forward(token) - ); -} - - -void test_single(asio::io_context& ioc) { - using namespace std::chrono; - - fake_stream s(asio::make_strand(ioc)); - - auto on_message = [] ( - error_code ec, uint8_t control_code, byte_iter first, byte_iter last - ) { - fmt::print(stderr, "Error code: {}\n", ec.message()); - if (ec) return; - size_t remain_length = std::distance(first, last); - auto rv = decoders::decode_connack(control_code, remain_length, first); - const auto& [session_present, reason_code, cap] = *rv; - fmt::print(stderr, "Got CONNACK message, reason_code {}, session {}\n", reason_code, session_present); - fmt::print(stderr, "session_expiry_interval: {}\n", *cap[prop::session_expiry_interval]); - fmt::print(stderr, "maximum_packet_size: {}\n", *cap[prop::maximum_packet_size]); - fmt::print(stderr, "wildcard_subscription_available: {}\n", *cap[prop::wildcard_subscription_available]); - }; - - async_assemble(s, seconds(1), std::move(on_message)); - - ioc.run(); - ioc.restart(); -} - -asio::awaitable test_multiple_coro(asio::io_context& ioc) { - using namespace std::chrono; - - fake_stream s(asio::make_strand(ioc)); - - auto [ec1, cc1, first1, last1] = co_await async_assemble( - s, seconds(1), asio::use_nothrow_awaitable - ); - size_t remain_length1 = std::distance(first1, last1); - auto rv1 = decoders::decode_connack(cc1, remain_length1, first1); - if (rv1) - fmt::print(stderr, "CONNACK correctly decoded\n"); - - auto [ec2, cc2, first2, last2] = co_await async_assemble( - s, seconds(1), asio::use_nothrow_awaitable - ); - size_t remain_length2 = std::distance(first2, last2); - auto rv2 = decoders::decode_puback(cc2, remain_length2, first2); - - if (rv2) - fmt::print(stderr, "PUBACK correctly decoded\n"); -} - -void test_multiple(asio::io_context& ioc) { - co_spawn(ioc, test_multiple_coro(ioc), asio::detached); - ioc.run(); - ioc.restart(); -} - -} // end namespace async_mqtt - -void test_assembling(asio::io_context& ioc) { - using namespace std::chrono; - - async_mqtt::test_single(ioc); - async_mqtt::test_multiple(ioc); -} diff --git a/test/experimental/mutex.cpp b/test/experimental/mutex.cpp deleted file mode 100644 index cd06f8c..0000000 --- a/test/experimental/mutex.cpp +++ /dev/null @@ -1,237 +0,0 @@ -// #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#define ANKERL_NANOBENCH_IMPLEMENT -#include - -constexpr size_t nthreads = 4; -constexpr size_t per_job_count = 10'000 / nthreads; - -using namespace async_mqtt5::detail; - -void with_async_mutex(async_mutex& mutex, std::size_t* count) { - for (int c = 0; c < per_job_count; ++c) { - mutex.lock([&mutex, count](error_code) { - ++(*count); - mutex.unlock(); - }); - } -} - -void test_with_async_mutex(asio::any_io_executor e, async_mutex& mutex, size_t* count) { - asio::post(e, [&mutex, count]() { - with_async_mutex(mutex, count); - }); -} - -void with_old_async_mutex(async::mutex& mutex, std::size_t* count) { - for (int c = 0; c < per_job_count; ++c) { - mutex.lock([&mutex, count]() { - ++(*count); - mutex.unlock(); - }); - } -} - -void test_with_old_async_mutex(asio::any_io_executor e, async::mutex& mutex, size_t* count) { - asio::post(e, [&mutex, count]() { - with_old_async_mutex(mutex, count); - }); -} - - -struct std_mutex : public std::mutex { - std_mutex(asio::any_io_executor) : std::mutex() { } -}; - -void with_mutex(std_mutex& mutex, size_t* count) { - for (int c = 0; c < per_job_count; ++c) { - mutex.lock(); - ++(*count); - mutex.unlock(); - } -} - -void test_with_mutex(asio::any_io_executor e, std_mutex& mutex, size_t* count) { - asio::post(e, [&mutex, count]() { - with_mutex(mutex, count); - }); -} - -template -void test_with(Test func) { - asio::thread_pool pool(nthreads); - auto ex = pool.get_executor(); - auto count = std::make_unique(0); - Mutex mutex { ex }; - { - for (auto i = 0; i < nthreads; ++i) { - func(ex, mutex, count.get()); - } - } - pool.wait(); - if (*count != nthreads * per_job_count) - throw "greska!"; -} - -void test_cancellation() { - - asio::thread_pool tp; - asio::cancellation_signal cancel_signal; - - async_mutex mutex(tp.get_executor()); - asio::steady_timer timer(tp); - - auto op = [&](error_code ec) { - if (ec == asio::error::operation_aborted) { - mutex.unlock(); - return; - } - timer.expires_from_now(std::chrono::seconds(2)); - timer.async_wait([&] (boost::system::error_code) { - fmt::print(stderr, "Async-locked operation done\n"); - mutex.unlock(); - }); - }; - - auto cancellable_op = [&](error_code ec) { - fmt::print( - stderr, - "Cancellable async-locked operation finished with ec: {}\n", ec.message() - ); - if (ec == asio::error::operation_aborted) - return; - mutex.unlock(); - }; - - mutex.lock(std::move(op)); - - mutex.lock( - asio::bind_cancellation_slot( - cancel_signal.slot(), std::move(cancellable_op) - ) - ); - - asio::steady_timer timer2(tp); - timer2.expires_from_now(std::chrono::seconds(1)); - timer2.async_wait([&] (boost::system::error_code) { - cancel_signal.emit(asio::cancellation_type::terminal); - }); - - tp.wait(); -} - -void test_destructor() { - asio::thread_pool tp; - asio::cancellation_signal cancel_signal; - - { - async_mutex mutex(tp.get_executor()); - asio::steady_timer timer(tp); - - auto op = [&](error_code ec_mtx) { - if (ec_mtx == asio::error::operation_aborted) { - fmt::print( - stderr, - "Mutex operation cancelled error_code {}\n", - ec_mtx.message() - ); - mutex.unlock(); - return; - } - - timer.expires_from_now(std::chrono::seconds(2)); - timer.async_wait([&] (boost::system::error_code ec) { - if (ec == asio::error::operation_aborted) - return; - - fmt::print( - stderr, - "Async-locked operation done with error_code {}\n", - ec.message() - ); - mutex.unlock(); - }); - }; - - mutex.lock(std::move(op)); - } - - tp.wait(); -} - -void test_basics() { - asio::thread_pool tp; - - // { - asio::cancellation_signal cs; - async_mutex mutex(tp.get_executor()); - auto s1 = asio::make_strand(tp.get_executor()); - auto s2 = asio::make_strand(tp.get_executor()); - - mutex.lock(asio::bind_executor(s1, [&mutex, s1](boost::system::error_code ec) mutable { - fmt::print( - stderr, - "Scoped-locked operation (1) done with error_code {} ({})\n", - ec.message(), - s1.running_in_this_thread() - ); - if (ec != asio::error::operation_aborted) - mutex.unlock(); - })); - - mutex.lock( - asio::bind_cancellation_slot( - cs.slot(), - asio::bind_executor(s2, [s2](boost::system::error_code ec){ - fmt::print( - stderr, - "Scoped-locked operation (2) done with error_code {} ({})\n", - ec.message(), - s2.running_in_this_thread() - ); - }) - ) - ); - cs.emit(asio::cancellation_type_t::terminal); - cs.slot().clear(); - // } - - tp.wait(); -} - -void test_mutex() { - // test_basics(); - // return; - // test_destructor(); - // test_cancellation(); - // return; - - auto bench = ankerl::nanobench::Bench(); - bench.relative(true); - - bench.run("std::mutex", [] { - test_with(test_with_mutex); - }); - - bench.run("async_mutex", [] { - test_with(test_with_async_mutex); - }); - - bench.run("async::mutex", [] { - test_with(test_with_old_async_mutex); - }); -} diff --git a/test/experimental/uri_parse.cpp b/test/experimental/uri_parse.cpp deleted file mode 100644 index 4963086..0000000 --- a/test/experimental/uri_parse.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include - -template -static constexpr auto to_(T& arg) { - return [&](auto& ctx) { arg = boost::spirit::x3::_attr(ctx); }; -} - -template -static constexpr auto as_(Parser&& p){ - return boost::spirit::x3::rule{} = std::forward(p); -} - -void test_uri_parser(){ - struct authority_path { std::string host, port, path; }; - std::vector _servers; - - std::string brokers = "iot.fcluster.mireo.hr:1234, fc/nesto"; - std::string default_port = "8883"; - - namespace x3 = boost::spirit::x3; - - std::string host, port, path; - - // loosely based on RFC 3986 - auto unreserved_ = x3::char_("-a-zA-Z_0-9._~"); - auto digit_ = x3::char_("0-9"); - auto separator_ = x3::char_(','); - - auto host_ = as_(+unreserved_)[to_(host)]; - auto port_ = as_(':' >> +digit_)[to_(port)]; - auto path_ = as_('/' >> *unreserved_)[to_(path)]; - auto uri_ = *x3::omit[x3::space] >> (host_ >> *port_ >> *path_) >> - (*x3::omit[x3::space] >> x3::omit[separator_ | x3::eoi]); - - for (auto b = brokers.begin(); b != brokers.end(); ) { - host.clear(); port.clear(); path.clear(); - if (phrase_parse(b, brokers.end(), uri_, x3::eps(false))) { - _servers.push_back({ - std::move(host), port.empty() ? default_port : std::move(port), - std::move(path) - }); - } - else b = brokers.end(); - } -} - diff --git a/win/mqtt-client.sln b/win/mqtt-client.sln deleted file mode 100644 index a37fdd5..0000000 --- a/win/mqtt-client.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.4.33110.190 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt-client", "mqtt-client.vcxproj", "{303BA426-05B5-47FB-9F00-E932257FB28F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mqtt-test", "test/mqtt-test.vcxproj", "{48DEAF83-BA87-4FDE-8A4C-A539BA44A479}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x64.ActiveCfg = Debug|x64 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x64.Build.0 = Debug|x64 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x86.ActiveCfg = Debug|Win32 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Debug|x86.Build.0 = Debug|Win32 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x64.ActiveCfg = Release|x64 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x64.Build.0 = Release|x64 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x86.ActiveCfg = Release|Win32 - {303BA426-05B5-47FB-9F00-E932257FB28F}.Release|x86.Build.0 = Release|Win32 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x64.ActiveCfg = Debug|x64 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x64.Build.0 = Debug|x64 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x86.ActiveCfg = Debug|Win32 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Debug|x86.Build.0 = Debug|Win32 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x64.ActiveCfg = Release|x64 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x64.Build.0 = Release|x64 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x86.ActiveCfg = Release|Win32 - {48DEAF83-BA87-4FDE-8A4C-A539BA44A479}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E5126E4A-FF26-4E63-BC54-CE092A8E7966} - EndGlobalSection -EndGlobal diff --git a/win/mqtt-client.vcxproj b/win/mqtt-client.vcxproj deleted file mode 100644 index 774cc12..0000000 --- a/win/mqtt-client.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {303ba426-05b5-47fb-9f00-e932257fb28f} - mqttclient - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level4 - true - NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions) - true - stdcpp20 - /bigobj %(AdditionalOptions) - ..\include;$(DevRoot)3rdParty\openssl\include;%(AdditionalIncludeDirectories) - - - Console - true - crypt32.lib;openssl.lib;%(AdditionalDependencies) - $(DevRoot)Components\Bin\libd\x64\MT - - - - - Level4 - true - true - true - NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;_CONSOLE;NDEBUG;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions) - true - stdcpp20 - ..\include;$(DevRoot)3rdParty\openssl\include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - crypt32.lib;openssl.lib;%(AdditionalDependencies) - $(DevRoot)Components\Bin\libd\x64\MT - - - - - - \ No newline at end of file diff --git a/win/mqtt-client.vcxproj.filters b/win/mqtt-client.vcxproj.filters deleted file mode 100644 index ea26241..0000000 --- a/win/mqtt-client.vcxproj.filters +++ /dev/null @@ -1,174 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {fc537c67-a947-4840-80e0-6fe3f3d5d460} - - - {b786d33e-710a-4a1c-bc48-a14f6d79399c} - - - {0ce770cf-e2fa-429c-94f5-0e70835bed03} - - - {ec0b6550-a767-411d-9cea-1e33bcd63aab} - - - {e3af9391-bfab-4e35-aad7-0e5b8541ac1c} - - - {e83887a6-c73a-45ca-b224-45de8f660c74} - - - {ab9e608c-0bf9-4e0a-8dfe-1e0a2e040718} - - - - - Header Files\include\detail - - - Header Files\include\detail - - - Header Files\include\detail - - - Header Files\include\detail - - - Header Files\include\detail - - - Header Files\include\detail - - - Header Files\include\detail - - - Header Files\include\impl\internal\alloc - - - Header Files\include\impl\internal\alloc - - - Header Files\include\impl\internal\alloc - - - Header Files\include\impl\internal\alloc - - - Header Files\include\impl\internal\codecs - - - Header Files\include\impl\internal\codecs - - - Header Files\include\impl\internal\codecs - - - Header Files\include\impl\internal\codecs - - - Header Files\include\impl\internal\codecs - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include\impl - - - Header Files\include - - - Header Files\include - - - Header Files\include - - - Header Files - - - Header Files\include - - - - - Source Files\example - - - Source Files\example - - - Source Files\example - - - Source Files\example - - - Source Files - - - \ No newline at end of file diff --git a/win/test/mqtt-test.vcxproj b/win/test/mqtt-test.vcxproj deleted file mode 100644 index f57067d..0000000 --- a/win/test/mqtt-test.vcxproj +++ /dev/null @@ -1,159 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - 16.0 - Win32Proj - {48deaf83-ba87-4fde-8a4c-a539ba44a479} - mqtttest - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;BOOST_TEST_NO_MAIN=1;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions) - true - stdcpp20 - Async - /bigobj %(AdditionalOptions) - ../../include;../../test/unit/include;%(AdditionalIncludeDirectories) - - - Console - true - crypt32.lib;%(AdditionalDependencies) - - - - - Level3 - true - true - true - NOMINMAX;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;WIN32_LEAN_AND_MEAN;WIN32;_WIN32_WINDOWS=0x0601;_WIN32_WINNT=0x0601;BOOST_TEST_NO_MAIN=1;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;BOOST_ALL_NO_LIB;BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT;%(PreprocessorDefinitions) - true - stdcpp20 - Async - /bigobj %(AdditionalOptions) - ../../include;../../test/unit/include;%(AdditionalIncludeDirectories) - - - Console - true - true - true - crypt32.lib;%(AdditionalDependencies) - - - - - - \ No newline at end of file diff --git a/win/test/mqtt-test.vcxproj.filters b/win/test/mqtt-test.vcxproj.filters deleted file mode 100644 index 49a4334..0000000 --- a/win/test/mqtt-test.vcxproj.filters +++ /dev/null @@ -1,66 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {6361a7f6-7954-4ea3-a2a7-f3b15537a3ac} - - - {cf0bb550-9227-400c-9e0a-8b38fe2c32a3} - - - - - Header Files\test_common - - - Header Files\test_common - - - Header Files\test_common - - - Header Files\test_common - - - Header Files\test_common - - - Header Files\test_common - - - Header Files\test_common - - - - - Source Files\test - - - Source Files\test - - - Source Files\test - - - Source Files\test - - - Source Files - - - Source Files\test - - - \ No newline at end of file